====== mod_suphp ====== ===== インストール ===== # 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 ===== Apache再起動 ===== # service httpd restart ==== with-setid-mode ==== yumからインストールした場合 デフォルトではparanoidになっています。 コンパイルオプション --with-setid-mode=MODE: MODEは下記のいずれかを選択します。 "owner": ownerのUID/GIDでスクリプトを実行します。 "force": Apacheで設定されたUID/GIDでスクリプトを実行します。 (Apache 2を使用している場合のみサポート) "paranoid": ownerのUDI/GIDでスクリプトを実行しますが、Apacheで設定された UDI/GIDと一致するかどうかをチェックします。 ◆こんな感じで設定する必要があります。 ServerAdmin matsui@flat8.co.jp DocumentRoot /home/hogehoge/public_html ServerAlias www.flat8.co.jp ServerName www.flateight.com suPHP_UserGroup hogehoge users ===== suPHPの環境変数 ===== ※suphpの場合は、環境変数を設定する場合もヴァーチャルホスト毎に行う。 ===== エラー(Unknown Interpreter) ===== こんなエラーが出てしまう。 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() [function.session-start]: 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"