====== 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"