网站搜索

如何配置 Nginx 通过 PHP-FPM 与 PHP 一起工作


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

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

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

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

1.安装Nginx

乌班图/德班

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

sudo apt install nginx

CentOS/AlmaLinux/Rocky Linux

要获取最新的 Nginx 版本,CentOS、AlmaLinux 或 Rocky Linux 用户需要首先安装 EPEL 存储库。

EPEL(Extra Packages for Enterprise Linux)是 Fedora 团队的一个开源且免费的基于社区的存储库项目,它为基于 RHEL 的 Linux 发行版提供高质量的附加软件包。

sudo yum install epel-release

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

sudo yum install nginx

软呢帽

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

sudo dnf install nginx

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

2.安装PHP-FPM

乌班图/德班

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

sudo apt install php-fpm

中央操作系统

CentOS 服务器中默认提供的 PHP 版本已过时。因此,我们需要安装第三方包存储库来获取 PHP 7。

操作系统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。之后,您可以根据您的要求创建一个新的虚拟主机,从而启用任何新的虚拟主机。

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

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

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

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

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

确保 fastcgi_pass 指令中指定的 PHP 套接字文件名称(在我们的示例中为 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

如果该名称与 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

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

结论

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

您可以从此处采取一些后续步骤。例如,您应该确保与服务器的连接是安全的。 但怎么做呢?

按照我们的分步教程为您的服务器获取免费的 Let’s Encrypt SSL 证书。

相关文章: