如何通过 PHP-FPM 配置 Nginx 与 PHP 协同工作

hefengbao 发布于 2024.12.06

1.安装 Nginx

Ubuntu / Debian

sudo apt install nginx

CentOS / AlmaLinux / Rocky Linux

Extra Packages for Enterprise Linux (EPEL)

sudo yum install epel-release
sudo yum install nginx

Fedora

sudo dnf install nginx

2.安装 PHP-FPM

Ubuntu / Debian

sudo apt install php-fpm

CentOS

CentOS 7

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm

CentOS 8

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm

3. 配置 Nginx 通过 PH-FPM 执行 PHP

创建 nginx 配置文件

sudo vim /etc/nginx/sites-available/example.com

编辑内容:

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm;
        server_name example.com;
 
        location / {
            try_files $uri $uri/ =404;
        }
 
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }
}

保存后,创建软连接到 /etc/nginx/sites-enabled:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com 

确保 fastcgi_pass 定义的 PHP socket 文件名是正确的,例子中是 php7.4-fpm.sock,

ls -l /var/run/php/

类似如下的内容:

total 4
-rw-r--r-- 1 root     root      5 Dec  1 17:43 php7.4-fpm.pid
srw-rw---- 1 www-data www-data  0 Dec  1 17:43 php7.4-fpm.sock
lrwxrwxrwx 1 root     root     30 Dec  1 17:43 php-fpm.sock -> /etc/alternatives/php-fpm.sock

如果不一致,按自己实际修改即可。

重启 Nginx 服务:

sudo systemctl restart nginx.service

4. 测试配置

上述设置中,站点文件根目录 /var/www/html, 创建测试文件:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

测试访问 http://ip/info.php.

参考:

https://linuxiac.com/how-to-configure-nginx-to-work-with-php-via-php-fpm/

https://linuxiac.com/install-and-configure-nginx/

Linux    Nginx   Linux   PHP-FPM  

上一篇:统计代码行数的方法

下一篇:Ubuntu 安装 Docker

有 0 条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注