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

您的位置: 首页 > 文章列表 > 编程开发 > 如何在CentOS中配置PHP-FPM

如何在CentOS中配置PHP-FPM

  发布于2026-07-12 阅读(0)

扫一扫,手机访问

在CentOS上部署PHP-FPM,说白了就是给PHP应用加一个高效的后台管家——它能帮你更好地掌控性能与资源分配,避免PHP进程吃光服务器的内存。下面这份指南,会手把手带你走完整个配置流程。

如何在CentOS中配置PHP-FPM

1. 安装PHP-FPM

第一步当然是装包。CentOS下用yum就可以搞定,不过先得把EPEL仓库加上,因为PHP-FPM在默认源里可能没有。命令很简单:

sudo yum install epel-release
sudo yum install php-fpm

两条命令跑完,PHP-FPM就进系统了。

2. 配置PHP-FPM

装好之后,核心配置文件在/etc/php-fpm.d/www.conf。用sudo vi /etc/php-fpm.d/www.conf打开它,你会看到一堆参数——别慌,真正需要关心的就那么几个:

  • user / group:决定PHP-FPM进程以哪个用户身份运行,通常保持默认的apachenginx就行。
  • listen:监听的地址和端口。可以用Unix socket(如/run/php-fpm/www.sock)或者TCP端口(如127.0.0.1:9000)。socket性能更好,但用端口更灵活。
  • pm:进程管理模式。目前主流的三种:dynamic(动态调整子进程数)、static(固定数量)、ondemand(按需启动)。新手推荐dynamic
  • pm.max_children:最大子进程数,直接决定了PHP能同时处理多少请求。
  • pm.start_serverspm.min_spare_serverspm.max_spare_servers:这三个参数配合动态模式使用,控制空闲进程的数量范围。

调这些参数时,记得结合你的服务器内存和并发量来估算,别一股脑设太大。

3. 启动并开机自启

配置文件改好之后,执行:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

第一条启动服务,第二条设置开机自动运行。完成后可以检查一下状态:sudo systemctl status php-fpm,确认没报错。

4. 让Nginx或Apache与PHP-FPM握手

PHP-FPM跑起来了,但Web服务器还不知道怎么把PHP请求扔给它。下面分别给出Nginx和Apache的配置方式。

Nginx配置示例

编辑Nginx站点配置文件(通常是/etc/nginx/conf.d/default.conf),在server块里加入类似下面的内容:

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

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php-fpm/www.sock;  # 也可以用 127.0.0.1:9000
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

重点在于fastcgi_pass这一行,它指定了PHP-FPM的监听地址。保存后重启Nginx:

sudo systemctl restart nginx

Apache配置示例

如果用的是Apache,需要先启用proxy_fcgi模块:

sudo a2enmod proxy_fcgi setenvif

然后在虚拟主机配置文件(比如/etc/httpd/conf/httpd.conf或独立的站点配置文件)里加入以下段落:


    ServerName your_domain.com
    DocumentRoot /var/www/html

    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    

    
        SetHandler "proxy:fcgi://localhost:9000"
    

注意这里的localhost:9000,要和www.conflisten设置的端口保持一致。最后重启Apache:

sudo systemctl restart httpd

5. 验证配置是否生效

走到这一步,大功基本告成。来做个快速测试:在网站根目录(比如/var/www/html)下创建一个info.php文件,内容就写一行:

echo "" | sudo tee /var/www/html/info.php

然后浏览器访问http://your_domain.com/info.php。如果看到PHP信息页面,说明PHP-FPM已经成功接棒,所有配置都生效了。

当然,这个info.php在生产环境里记得删掉,免得泄露服务器信息。另外,根据你的实际业务负载,可能还需要微调pm.*参数——比如高并发场景下可以适当提高pm.max_children,但也要留意内存会不会爆。总之,多观察、多压测,才能找到最合适的配置。

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

热门关注