FPM-PHPを設定したPHPをインストールする
FPM(FastCGI Process Manager)なPHPをインストールする、Gentooの場合はUSEフラグをセットしてくださいUSEフラグの確認、その他のディストリビューションの方はそのようにやってください
karky7 ~ # equery u dev-lang/php ... ... - - fpm : Enable the FastCGI Process Manager SAPI ... ... - - xsl : Check/Support flag for XSL library (version 1) + - zip : Enable ZIP file support + + zlib : Adds support for zlib (de)compression karky7 ~ #
FPMのUSEフラグを有効にしてPHPをインストール
karky7 ~ # USE="fpm" emerge php ... >>> Emerging (1 of 1) dev-lang/php-5.4.6 ... ...
FPMのPHPのバージョンを確認、もし複数ある場合はeselectでセットしてください
karky7 ~ # eselect php list fpm [1] php5.4 * karky7 ~ #
FPM-PHPの設定をする、このあたりは後でお好みで調整してください
karky7 ~ # diff /etc/php/fpm-php5.4/php-fpm.conf /etc/php/fpm-php5.4/php-fpm.conf.ORG 99c99 < listen = 0.0.0.0:9000 --- > listen = 127.0.0.1:9000 160c160 < pm.start_servers = 20 --- > ;pm.start_servers = 20 karky7 ~ #
PHPの設定をする、とくに設定はいらないのですが、タイムゾーン系のエラーが出るので調整しておく、後はお好みで設定してください
karky7 ~ # cp /etc/php/fpm-php5.4/php.ini /etc/php/fpm-php5.4/php.ini.ORG karky7 ~ # emasc /etc/php/fpm-php5.4/php.ini -su: emasc: command not found karky7 ~ # emacs /etc/php/fpm-php5.4/php.ini karky7 ~ # diff /etc/php/fpm-php5.4/php.ini /etc/php/fpm-php5.4/php.ini.ORG 919c919 < date.timezone = Asia/Tokyo --- > ;date.timezone = karky7 ~ #
FPM-PHPをポート8989で動かす
karky7 ~ # /etc/init.d/php-fpm start * Starting PHP FastCGI Process Manager ... [ ok ] karky7 ~ # netstat -l | grep 8989 tcp 0 0 *:8989 *:* LISTEN karky7 ~ #
nginxをインストールする
結構フラグがいっぱいあるので調べましょう、#A君は英語が読めないのでスルーしますkarky7 ~ # emerge -pv nginx ... ... [ebuild N ] dev-libs/geoip-1.4.8 USE="ipv6 -perl-geoipupdate -static-libs" 1,790 kB [ebuild N ] www-servers/nginx-1.2.1 USE="http http-cache ipv6 pcre ssl -aio -debug -libatomic -pcre-jit (-selinux) -vim-syntax" NGINX_MODULES_HTTP="access auth_basic autoindex browser charset empty_gif fastcgi geo gzip limit_req limit_zone map memcached proxy referer rewrite scgi split_clients ssi upstream_ip_hash userid uwsgi -addition -cache_purge -dav -degradation -fancyindex -flv -geoip -gzip_static -headers_more -image_filter -mp4 -passenger -perl -push -random_index -realip -secure_link -slowfs_cache -stub_status -sub -upload -upload_progress -xslt" NGINX_MODULES_MAIL="-imap -pop3 -smtp" 702 kB karky7 ~ #
nginxを設定する、fastcgi_passでバックグラウンドのFPM-PHPへ転送する、その他のパラメータはFPM-PHPへ渡すパラメータなどの設定になる
karky7 ~ # cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.ORG karky7 ~ # emacs /etc/nginx/nginx.conf karky7 ~ # diff /etc/nginx/nginx.conf /etc/nginx/nginx.conf.ORG 49c49 < listen *; --- > listen 127.0.0.1; 51,57d50 < < location ~* \.php$ { < fastcgi_pass 127.0.0.1:8989; < fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; < fastcgi_param PATH_INFO $fastcgi_script_name; < include fastcgi_params; < } karky7 ~ #
nginxを起動する、ポート80で動作していることを確認
karky7 ~ # /etc/init.d/nginx start * Checking nginx' configuration ... [ ok ] * Starting nginx ... [ ok ] karky7 ~ # karky7 ~ # netstat -ln | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN karky7 ~ #
FPM-PHPが動作するか確認する
phpinfo()をDocumentRootへ配置、ブラウザからアクセスしてみるkarky7 ~ # echo '<?php phpinfo() ?>' > /var/www/localhost/htdocs/fpm-php.php karky7 ~ #
「Server API」「FPM/FastCGI」になってるね
今度は動作検証とかApacheとどのくらい違うのか調べてみたい、Djangoもこれでイケるらしいのでもうちょっと調べてみるとする
まぁ、最後はYesodやりたいのだが...
0 件のコメント:
コメントを投稿