如何安装与升级到 PHP 8.0 (Debian/Ubuntu)

PHP 8.0 带来了一些新功能,并在性能,语法,安全性和稳定性方面进行了改进。借助目前所有受支持的Debian和Ubuntu版本中可用的预编译软件包,可以轻松地在几乎任何类型的服务器/开发设置上安装PHP 8.0。

目前尚无PHP 8.0的普遍可用版本。尽管PHP 8.0当前处于功能冻结状态,但有可能在2020年11月发布更稳定的版本之前进行许多更改。对于生产系统,请等待正式的稳定版本。

PHP 8.0中的扩展和依赖项更改

尽管进行了 大量更改,但是PHP 8.0的依存关系和扩展结构没有太多更改。

  1. JSON扩展现在始终可用,并且没有编译标志可将其排除。这意味着不再需要显式安装 php-json 软件包。
  2. xmlrpc 有充分的理由 将扩展名移至PECL。这篇文章中提到的软件存储库不包括 xmlrpc PHP 8.0的扩展。

此外,GD扩展名 在Windows中已从更改 php_gd2.dll 为 php_gd.dll,将在单独的文章中介绍。

PHP 8.0中的INI更改

INI文件也很少更改。

  1. 断言默认情况下引发异常 -(assert.exception=1
  2. 默认错误显示设置为 E_ALL -(error_reporting=-1
  3. 默认显示启动错误 -(display_startup_errors=1

由于PHP 8.0的新功能和更改,

通过OndřejSurý的努力,可以轻松地在Ubuntu和Debian上安装PHP 8.0。他维护着一个PHP  PPA  ,其中包含PHP 8.0和几个流行的PECL扩展,这些扩展可随时安装在任何当前的Debian / Ubuntu系统上。


1.列出现有的PHP软件包

如果要从现有的PHP版本更新到8.0,则获取现有的PHP软件包列表很重要。尽管扩展名稍有 更改,但安装PHP 8.0对应软件包是确保升级顺利并涵盖与当前PHP版本相同的软件包的最简单方法。

dpkg -l | grep php | tee packages.txt

此命令将列出所有包含name的软件包 php,并将其写入名为的文件中packages.txt,该文件 可以随时引用。

2.添加 ondrej/php PPA

Ubuntu

sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt-get update

Debian

sudo apt install apt-transport-https lsb-release ca-certificates wget -y
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg 
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update

上面的步骤会将PPA添加为软件包的来源,其中包含所有PHP软件包及其依赖项,例如 argon2 和 libzip

3.安装PHP 8.0和扩展

所有PHP 8.0软件包都遵循 php8.0-NAME 模式,并且 php8.0-common 软件包包括一组明智的默认扩展名(例如`php8.0-)。

使用CLI安装PHP 8.0

sudo apt install php8.0-common php8.0-cli -y

该命令将安装多个由于php8.0-common包含的PHP扩展 以及用于PHP 8.0的CLI。

您可以通过运行以下命令确认安装:

php -v # Show PHP version.
php -m # Show PHP modules loaded.

其他扩展

您可以从同一php8.0-NAME 模式安装其他扩展 。packages.txt 如果要升级现有系统,请参考该 文件以查看现有软件包的列表。

请注意,您不需要安装, php8.0-json 因为默认情况下现在已包含它。

安装更多有用扩展的示例:

sudo apt install php8.0-{bz2,curl,intl,mysql,readline,xml}

对于开发环境,  也可以安装代码覆盖率工具或Xdebug调试器。

sudo apt install php8.0-pcov # PCOV code coverage tool
sudo apt install php8.0-xdebug # Xdebug debugger

安装服务器API

根据您使用的Web服务器,您将需要安装其他软件包才能与Web服务器集成。

对于 使用mpm_event,  Nginx,  Litespeed等的Apache ,该 php8.0-fpm 软件包通过FPM提供了与PHP 8.0的集成。

sudo apt install php8.0-fpm

对于 Apache使用 mod_php,请安装 libapache2-mod-php8.0

sudo apt install libapache2-mod-php8.0

4.测试PHP 8.0的安装

要测试PHP安装和扩展,请运行以下命令:

php -v
php -m
# php -v
PHP 8.0.0-dev (cli) (built: Oct 4 2020 14:04:36) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies

# php -m
[PHP Modules]
Core
ctype
curl
...

5.清除旧的PHP版本

如果新安装按预期工作,则可以从系统中删除旧的PHP软件包。

sudo apt purge '^php7.4.*'

假设您使用PHP 7.4作为以前的版本。php7.4 使用适当的PHP版本更改 上述命令的一部分。

6. PHP 8.0中的新增功能和更改

有关PHP 8.0中更改的完整列表,请参见PHP 8.0中 的新增功能和更改。

 

在CENTOS上安装PHP8.0

参考https://blog.p2hp.com/archives/6270

如何安装与升级到 PHP 8.0 (Debian/Ubuntu)
标签: