webサーバ勉強会4 nginx で php-fpm を動かしてみた

20
nginx で php-fpm で でででででで Web でででででで #4 2011/11/11 do_aki

Upload: doaki

Post on 08-May-2015

5.776 views

Category:

Technology


9 download

TRANSCRIPT

Page 1: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

nginx で php-fpm を動かしてみた

Web サーバ勉強会 #42011/11/11

do_aki

Page 2: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

• | 所属 | > 株式会社もしも    (ドロップシッピング・アフィリエイト ASP )

• | 仕事 | > インフラ構築・運用 兼   Web アプリケーション開発・運用

• | 出現 | > 渋谷・山手線沿線• | 特性 | > PHPer

do_aki ( どぅーあき )

http://do-aki.net/

Page 3: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

経緯とか• Web サーバ勉強会のお題が埋まってた• せっかくだし nginx 使って何かしたい

• チューニンガソン 2(10/1) で、 Mediawiki が php-fpm (5.4) でうまく動かないとか言ってた

Page 4: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

自分の nginx の認識• 今まで動かしたこと無かった

• 軽快・設定がシンプル• シングルスレッド• イベント駆動的な?

程度の知識しか持ってない

Page 5: Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Page 6: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

結果

問題ない ( たぶん )

※mediawiki を動かすのは

Page 7: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

環境

• Scientific Linux 6.0

• nginx version 1.0.9 (latest stable)• PHP version 5.4.0 beta2

( 昨日 RC1 でちゃったケド )

Page 8: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

最初に configure./configure \ --prefix=/usr \ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx \ --with-http_ssl_module --with-http_flv_module \ --with-http_gzip_static_module \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/run/nginx/client/ \ --http-proxy-temp-path=/var/run/nginx/proxy/ \ --http-fastcgi-temp-path=/var/run/nginx/fcgi/ \ --http-uwsgi-temp-path=/var/run/nginx/uwsgi/ \ --http-scgi-temp-path=/var/run/nginx/scgi/

あらかじめ pcre-devel パッケージをインストール ( たぶん openssl-devel zlib-devel)

Page 9: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

とりあえず試す• make & make install• $ sudo /usr/sbin/nginx

• t オプションで設定ファイルチェック• SIGHUP 送ると設定再読み込み

ドキュメント結構しっかりしてるね!

Page 10: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

ドキュメントルートが分からず

location / { root html; index index.html index.htm;}

基準パスはどこ?

Page 11: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

ドキュメントルートが分からず

location / { root /var/www/html; index index.html index.htm;}

絶対パスなら確実

Page 12: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

nginx.confserver { listen 8888; server_name localhost;

location / { root /var/www/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi.conf; }

error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }}

80 から変更

fastcgi 用設定

Page 13: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

一方 php-fpm./configure \ --cache-file=./config.cache \ --with-layout=GNU \ --disable-debug \ --disable-rpath \ --enable-zip \ --enable-mbstring=ja \ --enable-mbregex \ --with-openssl \ --with-zlib \ --enable-ftp \ --enable-sockets \ --enable-sysvsem --enable-sysvshm --enable-sysvmsg \ --with-apxs2=/usr/sbin/apxs \

--enable-fpm

Page 14: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

php-fpm を実行• make & make install • sudo /usr/local/sbin/php-fpm

• default port は 9000

• make install しなくても、設定ファイルさえ正しい場所に置いておけば動く

• php-5.4.0beta2/sapi/fpm/php-fpm を実行でも可能 ( 設定ファイルの場所はエラーで表示 )

Page 15: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

mediawiki 表示• 何故か表示されない• phpinfo() を実行するだけのスクリプト

は動く

• Response Header みると– Location: http://localhost:8888/...

Page 16: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

phpinfo を比較

$_SERVER["SERVER_NAME"]

apache => 192.168.29.128

nginx => localhost

Page 17: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

Fastcgi.conf (あるいは fastcgi_params)

fastcgi_param SERVER_NAME $server_name;

server_name localhost;

Page 18: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

nginx.confserver { listen 8888;

server_name 192.168.29.128;

location / { root /var/www/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi.conf; }

error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }}

Page 19: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

まとめ• nginx × php-fpm あっさり動いちゃった

• むしろ、チューニンガソン2で動かなかった理由は何だったんだ……?

• 当時は aplha3 だったから?• モジュールによって ?

• php-fpm は EXPERIMENTAL なので、プロダクションでは使わないようにね!

Page 20: Webサーバ勉強会4 nginx で php-fpm を動かしてみた

• ありがとうございました