# yum install mod_suphp
# vi /etc/suphp.conf umask=0077 ↓ アップロードされたファイルなど、600→644へ umask=0022 ;x-httpd-php=php:/usr/bin/php ↓ x-httpd-php="php:/usr/bin/php-cgi" # vi /etc/httpd/conf.d/suphp.conf suPHP_Engine off ↓ コメントアウト外す suPHP_Engine on # suPHP_AddHandler x-httpd-php ↓ コメントアウト外す suPHP_AddHandler x-httpd-php
# service httpd restart
yumからインストールした場合
デフォルトではparanoidになっています。
コンパイルオプション
--with-setid-mode=MODE: MODEは下記のいずれかを選択します。 "owner": ownerのUID/GIDでスクリプトを実行します。 "force": Apacheで設定されたUID/GIDでスクリプトを実行します。 (Apache 2を使用している場合のみサポート) "paranoid": ownerのUDI/GIDでスクリプトを実行しますが、Apacheで設定された UDI/GIDと一致するかどうかをチェックします。
◆こんな感じで設定する必要があります。
<VirtualHost *:80> ServerAdmin matsui@flat8.co.jp DocumentRoot /home/hogehoge/public_html ServerAlias www.flat8.co.jp ServerName www.flateight.com suPHP_UserGroup hogehoge users </VirtualHost>
※suphpの場合は、環境変数を設定する場合もヴァーチャルホスト毎に行う。
こんなエラーが出てしまう。
SecurityException in Application.cpp:511: Unknown Interpreter: php
◆対応
/etc/suphp.confのx-http-phpの所をダブルクォートで囲んでやると動作するらしい。
# vi /etc/suphp.conf ;x-httpd-php=php:/usr/bin/php-cgi ↓ x-httpd-php="php:/usr/bin/php-cgi"
suphpによって書き込む権限が変わるから、セッション関係でエラーが出てしまう。
PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: open(/var/lib/php/session/sess_8ei24n25r7pg56vce3cp8ifnu3, O_RDWR) failed: Permission denied (13)
◆対応
セッションのパスを書き込み出来る場所に変更してあげる。
# vi /etc/php.ini session.save_path = "/var/lib/php/session" ↓ session.save_path = "/tmp"