suPHPのWebsuPHP
suPHPはPHPスクリプトをオーナー権限で動作させるためのApacheモジュール
ディレクティブで設定できるのがポイント
条件
# cd /usr/local/src # mkdir suPHP # cd suPHP # wget http://www.suphp.org/download/suphp-0.7.2.tar.gz # tar -zxvf suphp-0.7.2.tar.gz # cd suphp-0.7.2 # aclocal && libtoolize --force && automake --add-missing && autoreconf # ./configure --with-apr=/usr/bin/apr-1-config # make install
あとは一緒。
aclocal~の行は0.7.2はconfig/install.sh等が存在していないので
作成する為のおまじないです
libtoolizeはおまじないしておかないと、make installした時に
Version mismatch errorってのが発生します
# cd /usr/local/src # mkdir suPHP # cd suPHP # wget http://www.suphp.org/download/suphp-0.7.1.tar.gz # tar -zxvf suphp-0.7.1.tar.gz # cd suphp-0.7.1 # ./configure --with-apr=/usr/bin/apr-1-config # make install
# cd doc # cp suphp.conf-example /usr/local/etc/suphp.conf
webserver_user=apache ←修正 x-httpd-php="php:/usr/bin/php-cgi" ←修正 x-httpd-php4="php:/usr/local/bin/php4-cgi" ←追加(php4用)
# cd /usr/local/src # wget http://www.suphp.org/download/suphp-0.6.3.tar.gz # tar zxvf suphp-0.6.3.tar.gz
# cd suphp-0.6.3 # ./configure --with-apr=/usr/bin/apr-1-config # make install
# cd doc # cp suphp.conf-example /usr/local/etc/suphp.conf
webserver_user=apache ←修正 x-httpd-php="php:/usr/bin/php-cgi" ←修正 x-httpd-php4="php:/usr/local/bin/php4-cgi" ←追加(php4用)
httpd.confまたはphp.confまたはsuphp.confを追加
### suPHP LoadModule suphp_module modules/mod_suphp.so suPHP_Engine On DirectoryIndex index.php
suPHPを有効にするVirtualHostに以下を設定
suPHP_Engine On <Directory "/var/www/vhosts/<VirtualHost名>/public_html"> suPHP_UserGroup <ユーザ名> <グループ名> suPHP_AddHandler x-httpd-php AddHandler x-httpd-php .php suPHP_AddHandler x-httpd-php4 AddHandler x-httpd-php4 .php4 </Directory>
/var/log/suphp.logにログが出力されるので適宜ローティションを実施する
サンプルlogrotateファイル /var/log/suphp.log { missingok notifempty dateext create 0600 root apache }
/usr/local/etc/suphp.conf内の各種設定、特に以下
suPHPを利用している場合は、php.iniの設定変更が可能
この方法だとphp_admin_value, php_admin_flag, php_value, php_flagと制限されている項目が設定可能
必要な設定のみを記述したphp.iniを /var/www/vhosts/e-garakuta.net/etc/ に保存する .htaccessに以下を記載 suPHP_ConfigPath /var/www/vhosts/e-garakuta.net/etc/
Apacheの再起動等は不要