使用PHP-FPM在Ubuntu 20.04上安装Nginx

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

将指南下载为PDF

关门
这是续集。

这是续集。
这是续集。

本指南旨在允许运行Ubuntu 20.04服务器的用户安装Nginx Web服务器并配置PHP-FPM(FastCGI进程管理器)。 Nginx是一个免费的高性能Web服务器。 Nginx旨在通过反向代理和对同时使用HTTP,TCP和UDP协议的许多后端服务器的负载平衡实现速度和可伸缩性。该网站使用WordPress和Nginx,性能非常好。 Nginx的内存占用空间比Apache小,并且可以处理相同数量的并发连接。

Nginx功能

  • 内容缓存 –静态和动态内容缓存
  • 负载均衡 –使用URI,Cookie,args等进行第7层请求路由的HTTP,TCP,UDP负载平衡。
  • 反向代理 多种协议:HTTP,gRPC,memcached,PHP‑FPM,SCGI,uwsgi
  • 同时处理数十万客户
  • HTTP视频流:FLV,HDS,HLS,MP4
  • 具有HTTP / 2服务器推送支持的HTTP / 2网关
  • 双栈RSA / ECC SSL / TLS卸载
  • 监控插件:AppDynamics,Datadog,Dynatrace插件

步骤1:更新Ubuntu

在开始之前,您需要已运行且已更新并升级到最新可用软件包的Ubuntu服务器。

sudo apt update
sudo apt upgrade

步骤2:在Ubuntu 20.04 Linux上安装Nginx

系统更新后,在Ubuntu 20.04 Linux上安装Nginx软件包。

sudo apt install nginx

该服务将在安装后自动启动。

$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-05-09 19:38:43 UTC; 39s ago
       Docs: man:nginx(8)
   Main PID: 6449 (nginx)
      Tasks: 2 (limit: 2344)
     Memory: 3.8M
     CGroup: /system.slice/nginx.service
             ├─6449 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             └─6451 nginx: worker process

May 09 19:38:43 ubuntu20 systemd[1]: Starting A high performance web server and a reverse proxy server...
May 09 19:38:43 ubuntu20 systemd[1]: Started A high performance web server and a reverse proxy server.

不能在同一端口上同时运行Apache和Nginx。您需要禁用Apache Web服务器或将端口之一更改为http标准端口。

sudo systemctl disable --now apache2

UFW防火墙可以配置为允许端口80。

sudo ufw allow proto tcp from any to any port 80,443

步骤3:在Ubuntu 20.04上安装Ubuntu-FPM

如果您打算将PHP与Nginx一起使用,请考虑安装PHP-FPM软件包。

sudo apt update
sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd  php-mbstring php-curl php-xml php-pear php-bcmath

PHP-FPM具有需要运行的服务。

$ systemctl status php7.4-fpm.service 
● 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 Sat 2020-05-09 19:50:53 UTC; 2min 26s ago
       Docs: man:php-fpm7.4(8)
   Main PID: 22141 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 2344)
     Memory: 9.3M
     CGroup: /system.slice/php7.4-fpm.service
             ├─22141 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─22142 php-fpm: pool www
             └─22143 php-fpm: pool www

May 09 19:50:53 ubuntu20 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
May 09 19:50:53 ubuntu20 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

PID和套接字文件位于以下目录中。

$ ls /run/php/
php-fpm.sock  php7.4-fpm.pid  php7.4-fpm.sock

步骤4:在Ubuntu上使用Nginx配置PHP-FPM

编辑并设置应用程序Nginx配置文件 fastcgi_pass 通过FPM套接字加载的部分。请参见下面的代码段。

$ cat /etc/nginx/php_fastcgi.conf 
# 404
try_files $fastcgi_script_name =404;

# default fastcgi_params
include fastcgi_params;

# fastcgi settings
fastcgi_pass			unix:/run/php/php7.4-fpm.sock;
fastcgi_index			index.php;
fastcgi_buffers			8 16k;
fastcgi_buffer_size		32k;
fastcgi_hide_header             X-Powered-By;
fastcgi_hide_header             X-CF-Powered-By;

重新加载Nginx并在网络上打开该应用程序,以查看其是否按预期工作。您已在Ubuntu 20.04 Linux计算机上成功安装了Apache Web服务器。

类似指南:

在Ubuntu上安装Apache Web Server

Nginx阅读书籍

Nginx HTTP Server第四版:利用Nginx的功能来最大程度地利用基础架构并以比以往更快的速度提供页面

实用的Apache,PHP-FPM和Nginx反向代理:如何从头开始构建安全,快速和强大的Web服务器(实用指南系列,第3册)使用PHP-FPM在Ubuntu 20.04上安装Nginx

这是续集。
这是续集。

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

将指南下载为PDF

关门
这是续集。

这是续集。
这是续集。

Sidebar