- 2010年5月11日 21:54
- Apache | Vine Linux
Vine 4.2 の Apache 2.2 環境にて PHP(Module版) & suPHP(CGI版) を共存させるお話。
まず前提の環境として、Apache + PHP + suPHP がインストールされているとします。
この環境の場合はsuPHPを標準で稼動していることでしょう。
そこでPHPのModuleをApacheに読み込ませるとともに設定をします。
早い話がsuPHPへ移行する際に無効にしたPHPの設定を復元するだけです。
私の環境では「#」でコメントして無効にしていたので外して有効にしました。
# vi /etc/apache2/conf.d/php5.conf
<IfModule !php4_module> LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps DirectoryIndex index.php index.phtml </IfModule>
次にApache側のsuPHPに設定を追加します。
コメントで補足がある部分が追加した部分です。
この部分でModule版PHPを無効にしています。
# vi /etc/apache2/conf.d/suphp.conf
# mod_php Off php_admin_flag engine Off LoadModule suphp_module modules/mod_suphp.so suPHP_Engine On AddHandler x-httpd-php .php suPHP_AddHandler x-httpd-php
これで共存の環境は整いました。
デフォルトではsuPHPでPHPスクリプトが処理されつつ、以下で紹介する方法でModule版PHPで処理することが可能になります。
Module版PHPで動作させたい VirtualHost に以下のように追記します。
コメントで補足している3つが追加する部分なので他は参考程度にして下さい。
# vi /etc/apache2/conf/httpd.conf
<VirtualHost *:80> SuexecUserGroup sample sample ServerAdmin sample@fya.jp DocumentRoot /home/sample/public_html ServerName sample.fya.jp # suPHP Off suPHP_Engine Off # RemoveHandler .php # mod_php On php_admin_flag engine On </VirtualHost>
上記設定が施されたサイトではsuPHPが無効になり、Module版PHPで動作します。
動作確認は「phpinfo()」を用いて項目「Server API」の部分をご覧下さい。
補足ですが、拡張子「.php」以外で動作させたい場合は以下のようにします。
以下の例は拡張子「.html」をPHPスクリプトとして動作させる設定です。
「.htaccess」ファイルを開いて以下のように編集します。
(双方の環境で動作するように両方の環境の場合を記述しています)
# PHP動作
# Apache module版
RemoveHandler .html
AddType application/x-httpd-php .html
# suPHP版
AddHandler x-httpd-php .html
また、suPHP環境からModule版PHPへ移行した場合はパーミッションにも注意です。
読み書きするファイルは「606」。
読み書きするファイルがあるディレクトリは「707」などにしましょう。
仕様を理解していれば気づくのですが、意外と忘れていると「あれ?」と思います。
- Newer: MT 再構築高速化 by PHP
- Older: SQLite ログファイル肥大化 500エラー
Comments:0
Trackbacks:0
- TrackBack URL for this entry
- https://www.fya.jp/cgi-bin/mt/mt-tb.cgi/92
- Listed below are links to weblogs that reference
- Apache 2.2 PHP & suPHP 共存 from Minase's Blog - FYA