= php5 =
== Vine Linux独自の仕様 ==
* [http://wiki.ohgaki.net/index.php?PHP%2Fpatch%2FStrictSession strict sessionパッチ]を独自にPHP-5.3.xに対応させたものを適用しています。
* [http://svn.php.net/viewvc/php/php-src/branches/PHP_5_3/main/main.c?r1=319750&r2=319823&pathrev=319823 bug#60373修正]をrevert。
* Vine LinuxではZTSを有効にしていないのでこのバグは発現せず、error_logのタイムスタンプがUTCに固定されてしまう([https://bugs.php.net/bug.php?id=60723 bug#60723])害の方が大きいためrevertしました。
== 初期設定 ==
=== Apache2モジュールを利用する場合 ===
VinePlusで提供しているphp5-apache2パッケージでは、Apacheをprefork MPMで起動していないと動作しません。
1. 以下のパッケージをインストールする。
* apache2
* php5-apache2
1. Apacheをprefork MPMに切り替える。
{{{
$ sudo /sbin/update-alternatives --config apache2
2 プログラムがあり 'apache2' を提供します。
選択 コマンド
-----------------------------------------------
+ 1 /usr/sbin/apache2.worker
* 2 /usr/sbin/apache2.prefork
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
}}}
=== Apache2でFastCGIを利用する場合 ===
こちらではApacheのMPM制限はなく、お好みのものを利用できます (worker推奨)。
1. 以下のパッケージをインストールする。
* apache2
* mod_fcgid-apache2
* php5 (php5-apache2は不要)
1. /etc/apache2/conf.d/mod_fcgid.confを以下のように編集する。
{{{
LoadModule fcgid_module modules/mod_fcgid.so
FcgidIPCDir /tmp/fcgid_sock/
}}}
1. httpd.confの必要な箇所(バーチャルホスト定義内、等)に以下の記述を追加する。
{{{
AddHandler fcgid-script .php
FcgidWrapper /usr/bin/php5-cgi .php
}}}
=== nginxでFastCGIを利用する場合 ===
1. 以下のパッケージをインストールする。
* nginx
* php5-fpm
2. /etc/nginx/php.confを以下の内容で作成する。
{{{
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_split_path_info ^(.+\.php)(/.+)?$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with –enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_ignore_client_abort on;
}}}
1. nginx設定ファイルの必要な箇所(http, server, locationブロック)に以下の記述を追加する。
{{{
location ~ \.php
{
include php.conf;
}
}}}
1. 必要に応じて/etc/php5/php-fpm.conf, /etc/php5/fpm.d/*の設定を変更する。