如何在Ubuntu 20.04上用PHP-FPM设置Nginx

时间:2019-04-29 03:17:20  来源:igfitidea点击:

PHP FPM (FastCGI进程管理器)用于在Nginx web服务器上部署基于PHP的网站。
FPM是一个在PHP中管理FastCGI SAPI(服务器API)的进程管理器。
本教程将在Ubuntu 20.04系统上使用PHP-FPM安装和配置Nginx。

步骤1 -安装Nginx

Nginx包在默认存储库下可用。
使用sudo特权帐户SSH到Ubuntu 20.04 LTS系统,并从官方存储库安装Nginx web服务器。

sudo apt update 
sudo apt install nginx

步骤2 -安装PHP

对于PHP安装,我们建议使用ppa:ondrej/ PHP ppa,它为Ubuntu系统提供了最新的PHP版本。
使用以下命令将PPA添加到系统中。

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

然后安装在编写本教程时可用的最新版本PHP 7.4。
简单地执行以下命令来安装PHP和PHP- fpm包。

apt update
sudo apt install php7.4 php7.4-fpm

注意:当使用PHP-FPM。所有PHP模块配置都位于/etc/php/7.4/fpm目录下。

安装以上软件包后,php7.4-fpm服务将自动启动。
可以通过在终端上键入下面的命令来确定。

sudo systemctl status php7.4-fpm

● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-06-16 05:15:57 UTC; 1 day 10h ago
       Docs: man:php-fpm7.4(8)
   Main PID: 882699 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 2, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 2283)
     Memory: 12.1M
     CGroup: /system.slice/php7.4-fpm.service
             ├─882699 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─882714 php-fpm: pool www
             └─882715 php-fpm: pool www

Jun 16 05:15:57 tecadmin systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Jun 16 05:15:57 tecadmin systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

步骤4 -配置NGINX与FPM

接下来,创建一个Nginx服务器块配置文件来用FPM运行PHP。
在文本编辑器中创建和编辑虚拟主机主机配置文件。
可以根据需求创建新的虚拟主机,所以请确保启用任何新的虚拟主机。

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

使用以下基本的Nginx虚拟主机配置和php fpm设置。
按照以下步骤更新配置。

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

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

sudo systemctl restart nginx

步骤4 -测试设置

服务器设置现在已经完成。
让我们用**phpinfo()**函数创建一个PHP脚本,并将其放置到服务器文档根目录中。
使用下面的命令创建php脚本:

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

然后通过服务器IP地址(默认虚拟主机)或Nginx虚拟主机中配置的域访问info.php。

http://服务器IP地址/info.php

向下滑动页面,可以看到 $_SERVER['SERVER_SOFTWARE']的值。
显示了web服务器的详细信息。

结论

本教程中在Ubuntu 20.04 Linux系统上使用PHP-FPM配置Nginx web服务器。