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

您的位置: 首页 > 文章列表 > 编程开发 > PHP-FPM与Nginx在Linux上如何协同

PHP-FPM与Nginx在Linux上如何协同

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

扫一扫,手机访问

PHP-FPM和Nginx这对组合,几乎是现代Web应用部署的标配。一个负责高效管理PHP进程,一个负责处理静态资源与反向袋里,两者配合得当,可以轻松应对高并发场景。下面就来拆解一下,在Linux上如何让它们无缝协作。

PHP-FPM与Nginx在Linux上如何协同

1. 安装Nginx和PHP-FPM

动手之前,先确认系统里有没有这两个组件。多数Linux发行版的包管理器都能一键搞定,省心省力。

在Debian/Ubuntu上:

sudo apt update
sudo apt install nginx php-fpm

在CentOS/RHEL上:

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

注意,CentOS上需要先启用EPEL仓库,否则Nginx可能不在默认源里。

2. 配置PHP-FPM

PHP-FPM的配置文件通常藏在 /etc/php/版本号/fpm/pool.d/www.conf 里。这里的关键是让PHP-FPM监听在Unix socket上,而不是TCP端口——socket通信延迟更低,性能更好。

用编辑器打开这个文件:

sudo nano /etc/php/版本号/fpm/pool.d/www.conf

找到 listen 这一行,改成类似下面的样子:

listen = /run/php/php版本号-fpm.sock

版本号记得替换成你实际安装的PHP版本,比如 php8.1-fpm.sock

3. 配置Nginx

Nginx这边就需要告诉它:遇到PHP文件时,别自己处理,丢给PHP-FPM去干。这个逻辑靠在 location 块里配置。

编辑Nginx的默认站点配置文件(路径可能因发行版而异,常见的是 /etc/nginx/sites-a vailable/default/etc/nginx/conf.d/default.conf):

sudo nano /etc/nginx/sites-a vailable/default

在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/php版本号-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

注意 fastcgi_pass 后面的socket路径,必须和PHP-FPM里配置的 listen 一致。另外,snippets/fastcgi-php.conf 这个文件在一些系统上可能叫 fastcgi.conf,具体看你的Nginx安装情况。

4. 启动和启用服务

配置完事,该让服务跑起来了。记得设置开机自启,免得重启后掉链子。

在Debian/Ubuntu上:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start php版本号-fpm
sudo systemctl enable php版本号-fpm

在CentOS/RHEL上:

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

5. 测试配置

接下来就是验证环节。在网站根目录下放一个简单的PHP文件(比如 info.php,内容填 ),然后通过浏览器访问你的域名或IP。如果能看到PHP信息页面,说明一切正常。

如果页面空白或报错,别急,检查一下文件权限和socket路径是否正确。另外,Nginx配置里 root 指向的目录必须存在,并且PHP-FPM进程有读取权限。

6. 防火墙设置

如果你的服务器开启了防火墙(比如ufw或firewalld),得放行HTTP和HTTPS流量。以ufw为例:

sudo ufw allow 'Nginx Full'

这条命令会同时开放80和443端口。

7. 日志检查

遇到问题先看日志,这是最直接的排错手段。Nginx和PHP-FPM都会把错误信息写进日志文件:

  • Nginx错误日志:/var/log/nginx/error.log
  • PHP-FPM错误日志:/var/log/php版本号-fpm.log

查看日志时,重点关注权限、socket连接、以及PHP语法错误。很多时候,日志里会直接告诉你“哪个文件没找到”或“哪个socket连不上”,对症下药就简单了。

搞定以上步骤,PHP-FPM和Nginx就能愉快地合作了。这套组合在Linux上运行多年,稳定性和性能都经得起考验,完全可以支撑起生产环境的PHP应用。

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

热门关注