nginx + PHPをインストールする

よくあるサンプルでは、epelからインストールしているが、
nginx のサイトに最新のリポジトリがあるのでそこから取得するのが楽で新しい。

# vim /etc/yum.repos.d/nginx.repo

http://wiki.nginx.org/Install
サイトを参考に以下のように記述

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

つぎにPHPが動くようにする

nginx + PHP-FPM + php

# yum install php php-fpm --enablerepo=remi
ユーザー変更, listen 変更
$ vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock

listen.owner = nobody
listen.group = nobody
listen.mode = 0666
nginx 設定変更
location ~* \.php$ { 
  fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
  fastcgi_index  index.php; 
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
  fastcgi_intercept_errors on; 
  include        fastcgi_params; 
}

nginx + spawn-fcgi + php

難易度も作業も同じ程度。

# yum install spawn-fcgi
設定変更
# vim /etc/sysconfig/spawn-fcgi

ソケットを利用する場合(デフォルト)

SOCKET=/var/run/php-fcgi.sock
OPTIONS="-u nginx -g nginx -s $SOCKET -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi"
# vim /etc/nginx/conf.d/hoge.conf
location ~* \.php$ { 
  fastcgi_pass   unix:/var/run/php-fcgi.sock; 
  fastcgi_index  index.php; 
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
  fastcgi_intercept_errors on; 
  include        fastcgi_params; 
}

ポートを使って起動

PORT=9000
OPTIONS="-u nginx -g nginx -p $PORT -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi"
# vim /etc/nginx/conf.d/hoge.conf
location ~* \.php$ { 
  fastcgi_pass   127.0.0.1:9000; 
  fastcgi_index  index.php; 
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
  fastcgi_intercept_errors on; 
  include        fastcgi_params; 
}

symfony1.4 はnginx + PHP-FPMで動かなかった。
コードを追ってみたが、new $class のような記述が多く、コードを追うのは途中でやめた。