前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在 Debian 和 Ubuntu 系统上安装/升级 PHP 8.2

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

作者头像
Tinywan
发布2023-09-24 08:56:05
1.1K0
发布2023-09-24 08:56:05
举报
文章被收录于专栏:开源技术小栈开源技术小栈

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

目前,在 Debian 或 Ubuntu 的默认软件仓库中不提供 PHP 8.2 软件包,但 PHP 8.2 软件包可从 Ondřej Surý 维护的仓库中获得。Ondrej的存储库是主要和最新的存储库,提供PHP包和PECL扩展到基于Debian和Ubuntu的操作系统,并用于所有PHP。观看有关在这些系统上安装 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 解析警告。

快速入门

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

Ubuntu

代码语言:javascript
复制
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*

Debian

代码语言:javascript
复制
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 https://packages.sury.org/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 php8.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 相关的软件包,并将它们保存到名为 packages.txt 的文本文件中。这有助于在 PHP 8.2 上重建相同的软件包列表。

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

代码语言:javascript
复制
dpkg -l | grep php | tee packages.txt

2. 添加 ondrej/php PPA 作为软件存储库

Ondřej Surý 维护的存储库包含主要的 PHP 软件包,并保持更新。

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

Ubuntu LTS Versions Ubuntu LTS 版本

代码语言:javascript
复制
sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt update

Debian

代码语言:javascript
复制
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 中的捆绑扩展,如 jsonctypedaterandom 等不需要手动安装。

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

代码语言:javascript
复制
sudo apt install php8.2 php8.2-cli php8.2-{curl,bz2,mbstring,intl}

展开上面的大括号以包括新系统上所需的所有扩展名。升级现有 PHP 安装程序时,在步骤 #1 中创建 packages.txt 的文件应列出所有当前的 PHP 包。

4. 安装并启用服务器 API

在 Web 服务器与 PHP 集成的系统上,安装其他服务器 API 包。以下是最流行的组合的一些示例:

带有 PHP-FPM 的 Apache Web 服务器

代码语言:javascript
复制
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 模块,除非边缘用例需要它。

代码语言:javascript
复制
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服务器

代码语言:javascript
复制
sudo apt install php8.2-fpm
sudo service nginx restart

然后,编辑相关的 Nginx 配置文件以指向新的 PHP 套接字 at fastcgi_pass 指令:

代码语言:javascript
复制
// fastcgi_pass unix:/run/php/php8.1-fpm.sock;
// 要进行替换操作
fastcgi_pass unix:/run/php/php8.2-fpm.sock;

5. 测试 PHP 8.2 安装

要测试 PHP CLI 安装,请尝试运行以下命令:

代码语言:javascript
复制
php -v
php -m

输出应显示 PHP 8.2,以及已启用的 PHP 扩展列表。

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

6. 清除旧的 PHP 软件包

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

代码语言:javascript
复制
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 版本之间切换的简单方法。

代码语言:javascript
复制
sudo update-alternatives --config php

这将提示以交互方式选择指向的 php 替代 PHP 二进制路径。

代码语言:javascript
复制
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

设置路径而不使用交互式提示:

代码语言:javascript
复制
update-alternatives --set php /usr/bin/php8.1
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-09-23 10:35,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PHP 8.2 中的新增功能和更改内容
    • 显著的扩展和 INI 更改
    • 快速入门
      • Ubuntu
        • Debian
        • 详细指南
          • 1. 列出并存储 PHP 扩展列表
            • 2. 添加 ondrej/php PPA 作为软件存储库
              • Ubuntu LTS Versions Ubuntu LTS 版本
              • Debian
            • 3. 安装 PHP 8.2 和扩展
            • 4. 安装并启用服务器 API
              • 带有 PHP-FPM 的 Apache Web 服务器
                • 使用 PHP 作为 Apache 模块的 Apache Web 服务器
                  • 带有PHP-FPM的Nginx Web服务器
                  • 5. 测试 PHP 8.2 安装
                  • 6. 清除旧的 PHP 软件包
                  • 与其他版本一起运行多个 PHP 8.2
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档