本分步教程将向您展示如何安装和配置 Nginx 以使用 PHP-FPM 在您的服务器上执行 PHP。

Nginx + PHP 是最流行的一组软件,可用于构建网站。本分步教程将向您展示如何安装和配置 Nginx 以使用 PHP-FPM 在您的服务器上执行 PHP。

Nginx 是 PHP-FPM 的理想组合。它是一个稳定的Web 服务器,以其令人印象深刻的性能和低资源消耗而闻名。

当您使用 PHP-FPM 时,PHP 作为一个独立的服务运行。使用这个 PHP 版本作为语言解释器意味着请求将通过 unix 套接字进行处理。Nginx 服务器将只处理 HTTP 请求,而 PHP-FPM 解释 PHP 代码。

1. 安装 Nginx

Ubuntu / Debian

因为 Nginx 在Debian和Ubuntu的默认存储库中可用,所以可以使用apt 打包系统从这些存储库安装它 。

sudo apt install nginx

CentOS

要获得最新的 Nginx 版本,CentOS 用户首先需要安装EPEL 存储库。它包含用于 CentOS 的附加软件。

sudo yum install epel-release

然后就可以安装Nginx服务器了。

sudo yum install nginx

Fedora

Nginx 在默认的 Fedora 存储库中可用,因此可以使用dnf包管理器直接安装。

sudo dnf install nginx

相关:如何在 Linux 上安装 Nginx Web 服务器

2. 安装 PHP-FPM

Ubuntu / Debian

要在 Ubuntu 或 Debian 上安装 PHP,只需运行以下命令:

sudo apt install php-fpm

CentOS

CentOS 服务器中默认可用的 PHP 版本已过时。因此,我们需要安装第三方软件包存储库才能获取 PHP 7。

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使用PHP-FPM执行PHP

一旦安装了 Nginx 和 PHP,我们就可以配置 Nginx 将 PHP 请求发送到 PHP-FPM。

现在,我们需要创建一个 Nginx 服务器块配置文件来使用 FPM 运行 PHP。您可以根据您的要求创建新的 VirtualHost,因此请确保启用任何新的 VirtualHost。

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

替换 example.com 为您站点的域或 IP 地址,并将 root 指令替换为您站点的根目录。

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;
        }
}

保存对配置文件的更改并创建指向启用站点的目录的链接。

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

确保指令中php7.4-fpm.sock指定的 PHP 套接字文件(在我们的例子中)的名称fastcgi_pass是正确的。

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

如果名称与 不同php7.4-fpm.sock,只需将上面显示的服务器块中的名称替换为您服务器中的当前名称。

然后重新启动 Nginx 服务以重新加载更改。

sudo systemctl restart nginx.service

4. 测试设置

创建一个测试 PHP 文件,以便您可以验证 PHP-FPM 是否有效并与 Nginx 集成。在上面的服务器块中,我们的站点由 提供服务 /var/www/html,因此我们将在那里创建一个测试文件:

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

最后,info.php从 Web 浏览器访问,使用您站点的域或服务器的 IP 地址。您应该会看到 PHP 配置页面:

结论

恭喜!您已经将 Nginx 设置为通过 PHP-FPM 处理 PHP 请求。

您可以从这里采取许多后续步骤。例如,您应该确保与服务器的连接是安全的。但是怎么做呢?只需按照我们的分步教程即可为您的服务器获取免费的 Let’s Encrypt SSL 证书

发表评论