suPHPのインストール
suPHPのWebsuPHP
suPHPはPHPスクリプトをオーナー権限で動作させるためのApacheモジュール
ディレクティブで設定できるのがポイント
- 0.7.2がリリース。(2013-05-20)
- 0.7.1がリリース。(2009-03-14)
- 0.7.0がリリース。(2008-12-25)、0.6.3と同様のインストール方法でOK。
- php5とphp4の混在が可能(fastCGIで稼働しているから)
- phpがオーナー権限なので生成ファイルなども同様にオーナーになるため削除などもFTPで可能
- ディレクティブで設定可能
- phpバイナリがCGI版でインストールされていること1)
条件
- PHPはv5とv4がインストール済みとする
- HTTPは2系
- php5のCGI版バイナリが/usr/bin/php-cgiであること
- php4のCGI版バイナリが/usr/local/bin/php4-cgiであること
0.7.2のインストール
- ソースをダウンロード、展開、コンパイル
# 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ってのが発生します
0.7.1のインストール
- ソースをダウンロード、展開、コンパイル
# 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
- 設定ファイルの修正、拡張子.phpで実行されるバイナリをphp-cgiに設定変更
webserver_user=apache ←修正 x-httpd-php="php:/usr/bin/php-cgi" ←修正 x-httpd-php4="php:/usr/local/bin/php4-cgi" ←追加(php4用)
0.6.3のインストール
- 最新版をダウンロード、展開
# cd /usr/local/src # wget http://www.suphp.org/download/suphp-0.6.3.tar.gz # tar zxvf suphp-0.6.3.tar.gz
- コンパイル、インストール。configureスクリプトはapr-configを自動で検索するがCentOSのApacheの場合は実行ファイル名が異なるため検索に失敗するため、明示的に指定する必要がある。apr-1-configはapr-develパッケージにある。デフォルトでPREFIXは/usr/local
# 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
- 設定ファイルの修正、拡張子.phpで実行されるバイナリをphp-cgiに設定変更
webserver_user=apache ←修正 x-httpd-php="php:/usr/bin/php-cgi" ←修正 x-httpd-php4="php:/usr/local/bin/php4-cgi" ←追加(php4用)
ディレクティブ設定
httpd.confへの設定
httpd.confまたはphp.confまたはsuphp.confを追加
### suPHP LoadModule suphp_module modules/mod_suphp.so suPHP_Engine On DirectoryIndex index.php
VirtualHostへの設定
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内の各種設定、特に以下
- umask=0077のところ、phpが作成したファイルをapacheユーザが見るためにはotherにreadがついている必要がある。そのため、umask値は0073が妥当かな。
- min_uid=100のところ、CentOS系では一般ユーザは500番からのはずなので、500でも問題ないかも
- min_gid=100のところ、ユーザをどうグルーピング化するかによって異なるので注意が必要
php設定変更
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の再起動等は不要
1)
php4のCGI版バイナリをソースでインストールする際には注意が必要、詳しくはPHP関連のページ参考