发布于2026-07-16 阅读(0)
扫一扫,手机访问
配置CentOS上的PHP-FPM(FastCGI Process Manager)?整个过程其实并不复杂,几个核心步骤就能搞定,这里把关键点逐一拆开说清楚。

先做准备工作,确保系统包是最新的——这条虽然老生常谈,但确实省去不少后患:
sudo yum update -y
然后安装PHP和PHP-FPM,一行搞定:
sudo yum install -y epel-release
sudo yum install -y php php-fpm
这里的epel-release是额外软件源,装PHP时经常会用到,尤其是一些扩展包。
PHP-FPM的核心配置文件是/etc/php-fpm.d/www.conf。打开它:
sudo vi /etc/php-fpm.d/www.conf
几个关键参数值得花时间调一调:
user 和 group:运行PHP-FPM的用户和组,通常和Web服务器保持一致,比如apache或nginx。listen:监听地址。你可以选Unix socket(比如/run/php-fpm/www.sock)或者TCP端口(比如127.0.0.1:9000)。Socket方式性能更好,但需要处理好权限。listen.owner和listen.group:Socket文件的所有者和组,确保Web服务器能读写。pm:进程管理模式,dynamic最常用——按需动态调整子进程数;static则固定数量;ondemand只在请求到来时才启动。pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers:这四个参数控制进程池的规模。具体数值得根据服务器内存和并发量来设,下面是个通用参考:user = apache
group = apache
listen = /run/php-fpm/www.sock
listen.owner = apache
listen.group = apache
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
配置好了就启动服务,并设为开机自启:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
到这里PHP-FPM已经跑起来了,但还需要让Web服务器知道怎么跟它配合。
如果用的是Nginx,编辑它的站点配置文件(通常/etc/nginx/conf.d/default.conf):
sudo vi /etc/nginx/conf.d/default.conf
添加或修改一个location块来处理PHP请求:
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;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
注意fastcgi_pass后面的地址要和www.conf里listen保持一致。如果你配置的是TCP端口,就改成127.0.0.1:9000。
如果用的是Apache,先启用proxy_fcgi模块:
sudo a2enmod proxy_fcgi setenvif
然后在虚拟主机配置里加一段FilesMatch,让Apache把.php文件交给PHP-FPM处理:
sudo vi /etc/httpd/conf.d/your_domain.conf
ServerName your_domain.com
DocumentRoot /var/www/html
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
SetHandler "proxy:fcgi://localhost:9000"
这里用的是localhost:9000,如果你之前配置的是Unix socket,就需要对应的proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/格式,不过一般生产环境用Socket时仍然走mod_proxy_fcgi,写法稍有不同,建议根据具体版本查一下文档。
所有改动都到位后,重启Web服务器:
Nginx:
sudo systemctl restart nginx
Apache:
sudo systemctl restart httpd
最后可以用一个简单的phpinfo()文件验证一下——在站点根目录放个info.php,内容写,浏览器访问就能看到PHP-FPM的工作状态了。到这一步,CentOS上的PHP-FPM配置就算走通了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8