Linux/suPHP の変更点


*suPHP [#f6aa28c8]

[[dokuwiki.fl8.jp>http://dokuwiki.fl8.jp/doku.php/01_linux/02_www/suphp]]
[[dokuwiki.fl8.jp転載済み>http://dokuwiki.fl8.jp/doku.php/01_linux/02_www/suphp]]


#contents

**インストール [#r8e86f90]
 # 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 [#d844e5e2]
yumからインストールした場合

&color(Red){デフォルトでは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の環境変数 [#m4dbf60c]
&color(Red){※suphpの場合は、環境変数を設定する場合もヴァーチャルホスト毎に行う。};

[[参考>開発日記/2010-04-26]]

**エラー(Unknown Interpreter) [#da8bb6fb]
こんなエラーが出てしまう。
 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"

**セッション関係のエラー [#r6b217aa]
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"