====== php-fpm pool ======
php-fpmのpool機能を利用して、apacheのsuExec相当のWebサーバのユーザIDとは異なるユーザIDでCGIを実行する。
===== /usr/local/etc/php-fpm.conf =====
include=/usr/local/etc/php-fpm.d/*.conf
[global]
emergency_restart_threshold 10
emergency_restart_interval 1m
process_control_timeout 10s
events.mechanism = kqueue
===== /usr/local/etc/php-fpm.d/*.conf =====
# cat /usr/local/etc/php-fpm.d/hoge.conf
[hoge] <= 環境に合わせる
listen = /var/run/php-fpm-hoge.sock <= 環境に合わせる(socksまたはIP:port <- poolごとにportを変える)
listen.mode = 0666
user = hoge <= 環境に合わせる
group = hoge <= 環境に合わせる
request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm/slowlog-hoge.log <= 環境に合わせる
pm = dynamic
pm.max_children = 5
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 200
2016.02.07 listen.modeを書かないとエラーになる。前は大丈夫だったんだが…
===== /usr/local/etc/nginx/conf.d/php-fpm-* =====
fastcgi_pass unix:/var/run/php-fpm-hoge.sock; <= 環境に合わせる(socksまたはIP:port <- poolごとにportを変える)
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
include fastcgi_params;
===== /usr/local/etc/nginx/conf.d/php-fpm =====
default用に残しておく
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
include fastcgi_params;
====== 参考 ======
http://www.php.net/manual/ja/install.fpm.configuration.php