PHP-FPM 是 PHP 的 FastCGI 进程管理器,在5.3.3之前的版本是个补丁包需要单独安装,5.3.3起已集成到PHP中。
相对 Spawn-FCGI 来说,PHP-FPM 在 CPU 和内存方面的控制会好一些,也不容易崩溃,也不需要用crontab进行监控。
配置文件:/etc/php-fpm.d/www.conf,每个 php-fpm 进程大约需要 40M 内存。
pm:process manager
static – 子进程的数量是固定的(pm.max_children)。
ondemand – 进程在有需求时才产生(当请求时,与 dynamic 相反,pm.start_servers 在服务启动时即启动。
dynamic – 子进程的数量在这些配置的基础上动态设置:pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers。
动态进程数量:
pm = dynamic ;管理进程的方式为动态 pm.max_children = 50 ;最大进程数 pm.start_servers = 5 ;启动时的进程数 pm.min_spare_servers = 5 ;最小空闲进程数 pm.max_spare_servers = 32 ;最大空闲进程数
静态进程数量:
pm = static ;管理进程的方式为静态 pm.max_children = 50 ;进程总数
测试配置文件:
php-fpm -t
查看 php-fpm 进程数量:
ps -e | grep php-fpm | wc -l
查看系统内存使用情况:
free -m
一个 nginx 下 php-fpm 的配置示例:
server { listen 80; server_name upall.cn; location / { root /data/www/upall.cn; index index.html index.htm index.php; if (!-e $request_filename){ rewrite (.*) /index.php; } } location ~ \.php$ { root /data/www/upall.cn; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; client_max_body_size 64m; } location ~ /\.ht { deny all; } }
– 完 –