====== 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