PHP是最广泛使用的服务器端编程语言之一。许多流行的CMS和框架,例如WordPress,Magento和Laravel都是用PHP编写的。

PHP 8.0是PHP语言的最新主要版本。它引入了一些重大更改,性能改进以及许多新功能,例如命名参数,JIT编译器,联合类型,匹配表达式等。

本文将向您展示如何在Ubuntu 20.04上安装PHP 8并将其与Nginx和Apache集成。

在撰写本文时,默认的Ubuntu 20.04存储库包括PHP 7.4版本。我们将从 ondrej/php PPA 存储库安装PHP 。

在升级或安装PHP 8之前,请确保您的应用程序支持它。

相同的步骤适用于Ubuntu 18.04和所有基于Ubuntu的发行版,包括Kubuntu,Linux Mint和Elementary OS。

启用PHP存储库

Debian开发人员OndřejSurý维护着一个包含多个PHP版本的存储库。要启用存储库,请运行:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install software-properties-common

linuxmi@linuxmi:~/www.linuxmi.com$ sudo add-apt-repository ppa:ondrej/php

启用PPA后,即可安装PHP 8。

使用Apache安装PHP 8.0

如果将Apache用作Web服务器,则可以将PHP作为Apache模块或PHP-FPM运行。

将PHP安装为Apache模块

将PHP作为Apache模块安装是一项简单的任务:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install php8.0 libapache2-mod-php8.0

安装软件包后,请重新启动Apache以加载PHP模块:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl restart apache2

使用PHP-FPM配置Apache

Php-FPM是PHP的FastCGI流程管理器。运行以下命令以安装必要的软件包:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install php8.0-fpm libapache2-mod-fcgid

默认情况下,Apache中未启用PHP-FPM。要启用它,请运行:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo a2enmod proxy_fcgi setenvif
Considering dependency proxy for proxy_fcgi:
Enabling module proxy.
Enabling module proxy_fcgi.
Module setenvif already enabled
To activate the new configuration, you need to run:
systemctl restart apache2

linuxmi@linuxmi:~/www.linuxmi.com$ sudo a2enconf php8.0-fpm
Enabling conf php8.0-fpm.
To activate the new configuration, you need to run:
systemctl reload apache2

要激活更改,请重新启动Apache:

linuxmi@linuxmi:~/www.linuxmi.com$ systemctl restart apache2

使用Nginx安装PHP 8.0

Nginx不具有处理PHP文件的内置支持。我们将使用PHP-FPM(“ fastCGI进程管理器”)来处理PHP文件。

运行以下命令以安装PHP和PHP FPM软件包:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install php8.0-fpm

安装完成后,FPM服务将自动启动。要检查服务状态,请运行

linuxmi@linuxmi:~/www.linuxmi.com$ systemctl status php8.0-fpm

● php8.0-fpm.service - The PHP 8.0 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php8.0-fpm.service; enabled; vendor pr>
     Active: active (running) since Tue 2020-12-08 08:31:43 CST; 23min ago
       Docs: man:php-fpm8.0(8)
   Main PID: 31215 (php-fpm8.0)
     Status: "Processes active: 0, idle: 2, Requests: 3, slow: 0, Traffic: 0req>
      Tasks: 3 (limit: 4612)
     Memory: 10.1M
     CGroup: /system.slice/php8.0-fpm.service
             ├─31215 php-fpm: master process (/etc/php/8.0/fpm/php-fpm.conf)
             ├─31216 php-fpm: pool www
             └─31217 php-fpm: pool www

12月 08 08:31:42 linuxmi systemd[1]: Starting The PHP 8.0 FastCGI Process Manag>

现在,您可以编辑Nginx服务器块并添加以下行,以便Nginx可以处理PHP文件:

server {

    # . . . other code

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.0-fpm.sock;
    }
}

不要忘记重启Nginx服务,以使新配置生效:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl restart nginx

安装PHP扩展

PHP扩展是已编译的库,用于扩展PHP的核心功能。扩展是作为软件包提供的,可以通过以下APT方式轻松安装:

sudo apt install php8.0-[extname]

例如,要安装MySQL和GD扩展,您将运行以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install php8.0-mysql php8.0-gd

安装新的PHP扩展之后,请不要忘记重启Apache或PHP FPM服务,具体取决于您的设置。

测试PHP处理

要测试是否正确配置了Web服务器以进行PHP处理,请使用以下代码info.php在/var/www/html目录内部创建一个新文件:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /var/www/html/info.php

<?php

phpinfo();

保存文件,打开浏览器,然后访问:https://www.linuxmi.com/info.php

您将看到有关PHP配置的信息,类似于以下内容:

总结

在Ubuntu 20.04服务器上安装PHP 8是一个简单的任务。您需要做的就是启用“ ondrej/php”存储库并使用APT安装PHP 8。

发表评论