发布于2026-07-27 阅读(0)
扫一扫,手机访问
在Ubuntu中搭建PHP-FPM集群,其实并不复杂。关键在于合理配置多个实例,并让Nginx或Apache作为反向袋里,把请求分发到这些实例上。下面按步骤拆解,每一步都附带实际配置要点,照着做基本不会出错。

首先要确保系统已安装PHP和PHP-FPM。直接用apt安装即可:
sudo apt update
sudo apt install php-fpm
安装完成后,PHP-FPM会默认启动一个实例,但集群需要多个独立的实例,所以接下来要复制并修改配置文件。
默认的PHP-FPM池配置文件在 /etc/php/{version}/fpm/pool.d/www.conf,其中{version}是你的PHP版本号(比如7.4、8.1等)。我们需要为每个实例单独创建一个配置文件。先复制一份:
sudo cp /etc/php/{version}/fpm/pool.d/www.conf /etc/php/{version}/fpm/pool.d/www-cluster.conf
sudo nano /etc/php/{version}/fpm/pool.d/www-cluster.conf
在配置文件中,重点修改以下几个参数,让不同实例区分开来:
unix:/run/php/php7.4-fpm-cluster.sock 或 127.0.0.1:9001。dynamic 或 ondemand,集群场景下通常用 dynamic 以保持一定数量的备用进程。复制出多个配置文件(比如 www-cluster2.conf、www-cluster3.conf),分别修改其listen参数,就可以实现多个独立的PHP-FPM池。
每个配置文件对应一个独立的PHP-FPM进程。使用以下命令启动:
sudo php-fpm --nodaemonize --fpm-config /etc/php/{version}/fpm/pool.d/www-cluster.conf --pid /run/php/php{version}-cluster.pid
注意--nodaemonize参数让进程在前台运行,方便调试;生产环境建议去掉该参数,改用systemd管理。重复这条命令,每个实例指定不同的配置文件和PID文件路径即可。
如果需要开机自启,可以为每个实例编写systemd服务单元,或者直接使用@符号配合模板,不过这一步相对进阶,基础集群部署手动启动也完全可行。
有了多个PHP-FPM实例之后,就需要一个前端Web服务器来分发请求。Nginx是目前最常用的方案,下面是一个典型的upstream配置:
http {
upstream php_cluster {
server unix:/run/php/php7.4-fpm-cluster.sock;
server unix:/run/php/php7.4-fpm-cluster2.sock;
# 添加更多实例
}
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location ~ \.php$ {
fastcgi_pass php_cluster;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
关键点在于upstream块中列出了所有PHP-FPM实例的socket或IP:端口,Nginx会按轮询(默认)或你指定的策略分发请求。如果使用Apache,则通过mod_proxy_fcgi配合ProxyPassMatch实现类似效果。
配置完成后,重新加载Nginx:
sudo systemctl reload nginx
或者Apache:
sudo systemctl reload apache2
然后访问你的网站或测试页面,检查PHP请求是否被正确分发到各个PHP-FPM实例。可以通过查看每个实例的进程日志或使用strace来确认。如果一切正常,恭喜你,集群部署已经完成。
最后提醒一句:实际生产环境中,需要根据服务器资源、并发量以及业务场景调整pm参数,并考虑使用负载均衡器(如HAProxy)或更高级的调度策略。另外,多个实例共享同一套代码,务必确保文件权限和session存储等一致,否则会出现数据错乱。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8