如何在 Debian 和 Ubuntu 系统上安装/升级 PHP 8.2

PHP 8.2带来了主要的新特性,例如只读类、新random扩展、敏感参数编辑以及语言精简更改,包括弃用动态属性和与字符串插值相关的弃用。

注意:PHP 8.2 尚未达到 GA 版本,但
PHP 8.2 计划于 11 月 24 日发布。当发布第一个稳定的 PHP 8.2 版本时,将删除此通知。在此之前,指南的其余部分将安装最新的 PHP 8.2 候选版本。对于生产服务器,建议等到 GA 发布。

目前,Debian 或 Ubuntu 的默认软件存储库中未提供 PHP 8.2 软件包,但 PHP 8.2 软件包可从Ondřej Surý维护的存储库中获得。Ondrej 的存储库是主要的和最新的存储库,为基于 Debian 和 Ubuntu 的操作系统提供 PHP 包和 PECL 扩展,并用于所有 PHP.Watch 在这些系统上安装 PHP 的指南。

PHP 8.2 中的新功能和更改
PHP 8.2 带来了一个健康的安全和性能新功能列表,以及一些可能会在现有遗留系统上发出额外警告的弃用,因为它弃用了动态属性,以及一些其他弃用。

有关 PHP 8.2 中新功能和更改内容的完整列表,请参阅PHP 8.2:新功能和更改内容

值得注意的扩展和 INI 更改
PHP 8.2 不包含任何会影响安装或升级过程的显着变化。PHP 8.2 实际上添加了一个名为 的新扩展random,但是这个扩展始终是一个捆绑扩展,没有它就无法编译 PHP。

PHP 的 INI 设置和文件的一个显着变化是 PHP 8.2 对格式错误的 INI 设置发出警告,这些设置在旧的 PHP 版本中被禁止。有关详细信息,请参阅PHP 8.2:INI 解析警告。

注意:前方可能具有破坏性
的操作 以下操作执行为sudo,并且需要该级别的权限才能继续。进行任何系统范围的更改时的常见警告也适用于此。确保备份系统并在继续之前检查备份。

快速开始
安装/升级到 PHP 8.2 的命令行命令下方,有关详细步骤,请转到详细安装/升级指南

Ubuntu
sudo dpkg -l | grep php | tee packages.txt
sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt update
sudo apt install php8.2,php8.2-cli,php-8.2{bz2,curl,mbstring,intl}

sudo apt install php8.2-fpm
# OR
# sudo apt install libapache2-mod-php8.2

sudo a2enconf php8.2-fpm

# When upgrading from older PHP version:
sudo a2disconf php8.1-fpm

## Remove old packages
sudo apt purge php8.1*
德比安
sudo dpkg -l | grep php | tee packages.txt

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 http://www.txxsdkq.com//php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update

# Expand the curly braces with all extensions necessary.
sudo apt install php8.2,php8.2-cli,php-8.2{bz2,curl,mbstring,intl}

sudo apt install php8.2-fpm
# OR
# sudo apt install libapache2-mod-php8.2

sudo a2enconf php8.2-fpm

# When upgrading from older PHP version:
sudo a2disconf php8.1-fpm

## Remove old packages
sudo apt purge php8.1*
详细指南
1.列出并存储PHP扩展列表
以下命令列出了当前系统中存在的所有 PHP 相关包,并将它们保存到一个名为 .php 的文本文件packages.txt中。这有助于在 PHP 8.2 上重建相同的包列表。

在全新安装中,此步骤不是必需的。

dpkg -l | grep php | tee packages.txt
2.添加ondrej/phpPPA作为软件仓库。
Ondřej Surý维护的存储库包含主要的 PHP 包,并保持更新。

将此存储库添加到系统的软件源列表后,可以使用标准apt命令完成初始安装和更新。

Ubuntu LTS 版本

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

sudo apt install apt-transport-https lsb-release ca-certificates ```
software-properties-common
sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt update
3. 安装 PHP 8.2 和扩展
在第 2 步中添加的存储库中可用的所有 PHP 8.2 包都遵循php8.2-命名模式。不需要手动安装PHP 中的捆绑扩展,例如json, ctype, date,random等。

该php8.2-common软件包包括几个常用的 PHP 软件包。以后可以有选择地禁用不必要的扩展。

sudo apt install php8.2 php8.2-cli php8.2-{curl,bz2,mbstring,intl}
展开上面的大括号以包括新系统所需的所有扩展。升级现有的 PHP 设置时,packages.txt在步骤 #1 中创建的文件应列出所有当前的 PHP 包。

4. 安装并启用服务器 API
在 Web 服务器与 PHP 集成的系统上,安装额外的服务器 API 包。以下是最流行组合的一些示例:

带有 PHP-FPM 的 Apache Web 服务器

sudo apt install php8.2-fpm
sudo a2enconf php8.2-fpm
sudo a2disconf php8.1-fpm # When upgrading from an older PHP version
sudo service apache2 restart
将 PHP 作为 Apache 模块的 Apache Web 服务器
不建议将 PHP 安装为 Apache 模块,除非它是边缘用例所必需的。

sudo apt install libapache2-mod-php8.2
sudo a2enmod php8.2
sudo a2dismod php8.1 # When upgrading from an older PHP version
sudo service apache2 restart
使用 PHP-FPM 的 Nginx Web 服务器

sudo apt install php8.2-fpm
sudo service nginx restart
然后,编辑相关的 Nginx 配置文件以指向新的 PHP socket atfastcgi_pass指令:

 fastcgi_pass unix:/run/php/php8.1-fpm.sock;
 fastcgi_pass unix:/run/php/php8.2-fpm.sock;
5. 测试 PHP 8.2 安装
要测试 PHP CLI 安装,请尝试运行以下命令:

php -v
php -m
预计输出将显示PHP 8.2以及已启用的 PHP 扩展列表。

要测试 Web 服务器集成,请尝试通过 Web 服务器运行 PHP 文件。

6. 清除旧的 PHP 包
以下命令删除旧的 PHP 版本。建议在验证 PHP 8.2 安装正常工作之前不要删除它们。

sudo apt purge php8.1* # Change "php8.1" with the old PHP version names.
这也会删除要删除的包的配置文件。

与其他版本一起运行多个 PHP 8.2
无需全局安装 PHP 8.2 并删除旧的 PHP 版本,因为可以在同一台服务器上同时运行多个 PHP 版本。

默认情况下, PHP 8.2 CLI 将安装在该/usr/bin/php8.2位置,但链接类似地,其他 PHP 二进制文件将位于同一目录中(/usr/bin/php8.0、/usr/bin/php7.4等)。默认php名称将默认链接到最新的 PHP 版本,但可以更改默认php命令链接到的位置。

update-alternatives如果有多个 PHP 版本链接到同一php路径,该命令提供了一种在 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.2   82        auto mode
  1            /usr/bin/php8.1   81        manual mode
  2            /usr/bin/php8.2   82        manual mode
要在没有交互式提示的情况下设置路径:

update-alternatives --set php /usr/bin/php8.1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值