商城首页欢迎来到中国正版软件门户

您的位置:首页 >php-fpm在Ubuntu中如何实现集群部署

php-fpm在Ubuntu中如何实现集群部署

  发布于2026-04-21 阅读(0)

扫一扫,手机访问

在Ubuntu中实现PHP-FPM的集群部署

想让你的Web应用扛住更大流量,提升处理能力?在Ubuntu上为PHP-FPM搭建一个集群环境,是个相当实用的方案。这不仅能有效分配负载,还能提高服务的可用性。下面,我们就来一步步拆解这个部署过程。

1. 安装PHP-FPM

万事开头先装好。确保你的系统已经安装了PHP和PHP-FPM。打开终端,执行下面这两条命令,更新软件源并完成安装:

sudo apt update
sudo apt install php-fpm

2. 配置PHP-FPM

安装完成后,配置是关键。PHP-FPM的主配置文件通常藏在 /etc/php/{version}/fpm/pool.d/www.conf 这个路径下,记得把 {version} 替换成你实际的PHP版本号。

要实现集群,你得为每个PHP-FPM实例创建独立的配置文件。举个例子,假设我们需要两个实例:

sudo cp /etc/php/{version}/fpm/pool.d/www.conf /etc/php/{version}/fpm/pool.d/www1.conf
sudo cp /etc/php/{version}/fpm/pool.d/www.conf /etc/php/{version}/fpm/pool.d/www2.conf

接着,分别编辑这两个新文件。核心任务是修改里面的 listen 参数,让每个实例监听不同的Unix套接字或TCP端口,避免冲突。配置可能长这样:

; www1.conf
listen = /run/php/php7.4-fpm-www1.sock

; www2.conf
listen = /run/php/php7.4-fpm-www2.sock

3. 启动PHP-FPM实例

配置保存好,就可以启动我们的实例了。分别运行以下命令:

sudo systemctl start php{version}-fpm@www1
sudo systemctl start php{version}-fpm@www2

启动之后,别忘了确认一下它们是否都在健康运行:

sudo systemctl status php{version}-fpm@www1
sudo systemctl status php{version}-fpm@www2

4. 配置Nginx或Apache

后端服务准备好了,下一步就是让Web服务器(Nginx或Apache)知道如何把PHP请求分发过去。

Nginx配置示例

如果你用的是Nginx,需要编辑站点配置文件(通常是 /etc/nginx/sites-a vailable/default)。关键是在不同的 server 块里,通过 fastcgi_pass 指令指向对应的PHP-FPM实例套接字。

server {
    listen 80;
    server_name example.com;
    root /var/www/html;
    index index.php index.html index.htm;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm-www1.sock;
    }
}

server {
    listen 80;
    server_name example2.com;
    root /var/www/html;
    index index.php index.html index.htm;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm-www2.sock;
    }
}

配置写完,先测试语法是否正确,再重新加载配置使其生效:

sudo nginx -t
sudo systemctl reload nginx

Apache配置示例

对于Apache用户,则需要先启用 mod_proxy_fcgi 模块来处理FastCGI协议。

sudo a2enmod proxy_fcgi setenvif
sudo systemctl restart apache2

然后,编辑虚拟主机配置文件(如 /etc/apache2/sites-a vailable/000-default.conf),为每个虚拟主机指定对应的PHP-FPM实例处理PHP文件。


    ServerName example.com
    DocumentRoot /var/www/html

    
        SetHandler "proxy:unix:/run/php/php7.4-fpm-www1.sock|fcgi://localhost"
    



    ServerName example2.com
    DocumentRoot /var/www/html

    
        SetHandler "proxy:unix:/run/php/php7.4-fpm-www2.sock|fcgi://localhost"
    

同样,最后重新加载Apache配置:

sudo systemctl reload apache2

5. 测试集群部署

所有配置就绪后,最后一步就是验证。分别访问你配置的网站,尝试打开一个PHP页面(比如经典的 phpinfo()),确保请求能被正确地路由到后端的PHP-FPM实例并返回结果。

至此,一个基础的PHP-FPM集群就在Ubuntu上搭建完成了。这套方案的扩展性很好,当你的应用需要更多处理能力时,完全可以依葫芦画瓢,添加更多的PHP-FPM实例,并在Web服务器配置中做好相应的负载分配即可。

本文转载于:https://www.yisu.com/ask/46497731.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注