温馨提示×

php-fpm与Nginx在Linux中如何协同工作

小樊
40
2025-12-22 04:29:04
栏目: 编程语言

PHP-FPM(FastCGI Process Manager)和Nginx在Linux系统中协同工作,以提供高效的PHP网站和应用服务。以下是它们协同工作的基本步骤:

1. 安装PHP-FPM和Nginx

首先,你需要在你的Linux系统上安装PHP-FPM和Nginx。你可以使用包管理器来安装这些软件。

在Debian/Ubuntu上:

sudo apt update
sudo apt install nginx php-fpm

在CentOS/RHEL上:

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

2. 配置PHP-FPM

PHP-FPM的配置文件通常位于/etc/php/版本号/fpm/pool.d/www.conf。你需要确保PHP-FPM监听一个Unix套接字或TCP端口。

使用Unix套接字:

编辑/etc/php/版本号/fpm/pool.d/www.conf,找到并修改以下行:

listen = /run/php/php7.4-fpm.sock

确保权限正确:

sudo chown www-data:www-data /run/php/php7.4-fpm.sock

使用TCP端口:

如果你选择使用TCP端口,修改以下行:

listen = 127.0.0.1:9000

3. 配置Nginx

Nginx需要配置一个server块来处理PHP请求,并将它们传递给PHP-FPM。

编辑Nginx配置文件,通常位于/etc/nginx/sites-available/默认/etc/nginx/conf.d/default.conf

server {
    listen 80;
    server_name example.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/php7.4-fpm.sock; # 或者使用127.0.0.1:9000
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

4. 启动和启用服务

启动并启用Nginx和PHP-FPM服务:

在Debian/Ubuntu上:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm

在CentOS/RHEL上:

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

5. 测试配置

确保Nginx和PHP-FPM都在运行,并且配置正确。你可以通过访问你的网站来测试:

curl http://example.com

如果一切正常,你应该能够看到PHP脚本的输出。

总结

通过以上步骤,你已经成功配置了Nginx和PHP-FPM在Linux系统中的协同工作。Nginx负责处理HTTP请求并将PHP请求传递给PHP-FPM,PHP-FPM则负责执行PHP脚本并返回结果。这种架构提供了高性能和可扩展性,适用于大多数现代Web应用。

0