如何安装/更新PHP 8.0(Debian / Ubuntu)
原文英文参考链接
PHP 8.0带来了一些新功能,并在性能,语法,安全性和稳定性方面进行了改进。使用当前所有受支持的Debian和Ubuntu版本中可用的预编译软件包,可以轻松地在几乎任何类型的服务器/开发设置上安装PHP 8.0。
尽管进行了大量更改,但是PHP 8.0的依存关系和扩展结构没有太多更改。
- JSON扩展现在始终可用,并且没有编译标志可将其排除。这意味着不再需要显式安装
php-json
软件包。 xmlrpc
有充分的理由将扩展名移至PECL。这篇文章中提到的软件存储库不包括xmlrpc
PHP 8.0的扩展。
此外,GD扩展名在Windows中已从更改php_gd2.dll
为php_gd.dll
,将在单独的文章中介绍。
PHP 8.0中的INI更改
INI文件也很少更改。
- 断言默认情况下引发异常-(
assert.exception=1
) - 默认错误显示设置为
E_ALL
-(error_reporting=-1
) - 默认显示启动错误-(
display_startup_errors=1
)
由于PHP 8.0的新功能和更改,
- PHP 8.0中的新JIT功能添加了几个新的INI指令。
zend.exception_string_param_max_len
INI设置由于可配置的异常堆栈跟踪字符串长度
通过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
德比安
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
该命令将安装多个由于导致的PHP扩展php8.0-common
以及用于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
注意,Apache2Handler在PHP 8.0中被重命名为
php_module
fromphp7_module
。该libapache2-mod-php8.0
软件包会自动配置Apache模块的位置,但是,如果您要从现有的PHP设置进行更新,则可能需要更新配置文件;在特别的<IfModule>
街区。
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
...
清除旧的PHP版本
如果新安装按预期工作,则可以从系统中删除旧的PHP软件包。
sudo apt purge '^php7.4.*'
假设您使用PHP 7.4作为以前的版本。php7.4
使用适当的PHP版本更改上述命令的一部分。
使用其他版本运行PHP 8.0
除了删除旧的PHP版本之外,还可以并行运行多个PHP版本。
/usr/bin/php8.0
默认情况下,PHP 8.0 CLI将安装在该位置。同样,其他PHP二进制文件将位于同一个目录(/usr/bin/php7.4
,/usr/bin/php7.3
,等)。默认php
名称将默认链接到最新的PHP版本,但是可以更改默认php
命令的链接位置。
该update-alternatives
命令提供了一种在PHP CLI的PHP版本之间进行切换的简便方法。
sudo update-alternatives --config php
这会提示您以交互方式选择php
指向的备用PHP二进制路径。
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.0 80 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.0 80 manual mode
Press to keep the current choice[*], or type selection number:
要设置没有交互提示的路径:
update-alternatives --set php /usr/bin/php7.4
PHP 8.0中的新增功能和更改
有关PHP 8.0中更改的完整列表,请参见PHP 8.0中的新增功能和更改。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: