nginxでPHPを動かす。
結構前にNginxを試してみて、
最近再度インストールしたから、
その時のまとめ。
OSはCentOS6.4です。
【nginxのインストール】
nginx専用リポジトリがあるので、それを追加し、
yumでインストールする。
---追記---
remiリポジトリにも nginx はある。
nginxのバージョンを確認して問題なければ remi でもいいと思う。
---------
まずは、最新版のリポジトリを確認する。
http://nginx.org/packages/centos/6/noarch/RPMS/
リポジトリを追加する。
# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
インストールする
# yum install nginx
ここでFireWallがHTTPを弾いていないかをチェックするといい。
【phpのインストール】
Apacheのようにモジュールで動かせないので、
php-fpmという拡張パッケージを使う。
まずは、remiをインストールしておく。
その後、通常のphpパッケージに加えて、「php-fpm」を yum でインストールする。
# yum -y install php-fpm
拡張モジュールをインストールする。(ここは自由に指定してOK)
# yum -y install php-devel php-gd php-mbstring php-mysql php-pdo php-pear php-xml php-imap
セッションディレクトリ「/var/lib/php/session」の権限を確認する。
ここがApacheになっているとNginxでセッションが使えないので、
Apacheの場合はchownでnginxにしておく。
【php-fpmの設定】
「/etc/php-fpm.d/www.conf」でuserとgroupを nginx に変更する。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
user = nginx
group = nginx
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
【nginxの設定】
「/etc/nginx/conf.d/default.conf」phpを編集する
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
charset utf-8;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php; //最後に index.php を追記する。
}
location ~ \.php$ {
root /usr/share/nginx/html; //ドキュメントルートを指定
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
//これをコメントアウト
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
//これを追加する。
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
//ベンチマーク用のstatusを有効にする
location = /status {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /status;
fastcgi_pass 127.0.0.1:9000;
access_log off;
}
location /nginx_status {
stub_status on;
access_log off;
allow 192.168.1.1; //このIPを許可する。
deny all;
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
再起動して終わり
# /etc/init.d/php-fpm restart
# /etc/init.d/nginx restart
ドキュメントルートは「/usr/share/nginx/html」
statusは http://IP/nginx_status で確認できる。
結局Webサーバだからか、設定ファイルとかはApacheと同じような印象を受ける。