PHP 8.4 带来了多项新功能、安全性改进以及 通过大量弃用功能来提高性能 和删除。
本指南介绍了如何安装 PHP 8.4 或升级到 PHP 8.4 Ubuntu、Debian 或其衍生版本。虽然可以从源代码编译 PHP, 如下所述,从 APT 存储库安装它通常会更快 并且更安全,因为这些存储库将提供最新的错误 未来的修复和安全更新。
当前 Debian 和 Ubuntu 软件存储库中不提供 PHP 8.4。本指南使用 Ondřej Surý 维护的存储库。 Ondrej 的 PHP 存储库已成为 PHP 事实上的存储库 在 Ubuntu、Debian 及其衍生产品上已经存在了好几年了。
PHP 8.4 中潜在的向后兼容性影响
PHP 8.4 带来了一些新功能,例如属性挂钩, 非对称可见性、DOM、Curl、PCRE 扩展的改进以及 更多。
但是,PHP 8.4 还弃用了一些 PHP 功能并删除了 从 PHP 核心到 PECL 的四个 PHP 扩展。这可能会影响现有的 PHP 应用程序发出额外的 PHP 通知/警告,或在某些情况下失败
可能影响现有应用程序的一些显着更改包括:
- 已弃用隐式可为空参数声明
- 已弃用 E_STRICT 常量
- 扩展从 PHP 核心移至 PECL:Pspell、IMAP、OCI8 和PDO_OCI。
当 PHP 扩展从 PHP 核心移动到 PECL 时,该扩展 将遵循自己的发布周期。指南中使用的存储库 如果该扩展的 PECL 项目将为他们提供更新 发布更新。然而,这也意味着 PECL 扩展可以(并且 经常)在维护方面落后。
在继续之前,请确保备份系统。本指南 与任何现有的 PHP 安装并排安装 PHP 8.4, 它提供了一种简单的方法来切换回其他 PHP 安装,如果 必要的。
此步骤仅适用于升级现有的 PHP 设置。以下命令列出名称中包含文本 php 的所有已安装 PHP 包,将其显示在屏幕上,并将其写入名为 packages.txt 的文件。该文件在稍后安装 PHP 8.4 软件包时会派上用场,以确保安装相同的 PHP 8.4 版本扩展列表。
dpkg -l | grep php | tee packages.txt
2.添加 ondrej/php PPA/DPA
因为 PHP 8.4 包在当前任何版本中都不可用 Debian 或 Ubuntu 软件存储库,PHP 软件包必须来自 另一个仓库。
翁德热·苏里 维护一个包存档,其中包含所有已编译的二进制文件 当前的 PHP 版本,适用于 Ubuntu 和 Debian。它还运送了一些 PECL 扩展包括用于 PHP 核心扩展的 PECL 扩展(未捆绑) 在 PHP 8.4 中。
添加此存储库后,可以使用标准 apt 命令完成初始安装和更新。
Ubuntu PPA
dpkg -l | grep php | tee packages.txt
Debian DPA
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php # Press enter to confirm.sudo apt update
3。安装 PHP 8.4 服务器 API 包
在 Ondrej 的 PPA 和 DPA 中,PHP 8.4 包遵循 php8.1-NAME 模式。 PECL 和共享 PHP 扩展也遵循相同的模式。
在安装 PHP 扩展之前,请确保安装以下 PHP Server API (SAPI) 软件包之一:
仅安装 PHP-CLI
要安装 PHP CLI,请安装 php8.1-cli 包以及扩展
sudo apt-get updatesudo apt-get -y install lsb-release ca-certificates curl apt-transport-httpssudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.debsudo dpkg -i /tmp/debsuryorg-archive-keyring.debsudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'sudo apt-get update
PHP-CLI 和 PHP 作为 Apache 模块
要将 PHP CLI 和 PHP 8.4 安装为 Apache 模块,请安装 libapache2-mod-php8.4 软件包:
sudo apt install php8.4-cli
除非 PHP 应用程序需要将 PHP 安装为 Apache 模块,否则请考虑安装 PHP-FPM
PHP CLI 和 PHP-FPM(推荐)
建议安装 PHP-FPM,以将 PHP 与 Apache、Nginx 和 Caddy 等 Web 服务器集成。
sudo apt install php8.4-cli libapache2-mod-php8.4
这将安装 php8.4-fpm 服务并自动启用它。请参阅 FPM Web 服务器集成部分,了解稍后所需的其他步骤。
5.检查安装
要快速检查 PHP 安装,请运行以下命令:
sudo apt install php8.4-cli php8.4-fpm
它应该显示 PHP 版本、构建时间和更多信息:

如果安装了 PHP-FPM 服务,可以按如下方式检查其状态:
php -v
如果 PHP-FPM 服务器成功运行,它应该显示类似于以下内容的输出:

4。安装 PHP 扩展
所有共享 PHP 扩展和 PECL 扩展都遵循 php8.4-EXTNAME 模式,其中 extname 是扩展的名称。
升级现有系统时,请参阅在第一步中创建的 packages.txt 文件,用于检查现有的 PHP 8.3 或更早版本的 PHP 扩展。
要安装 PHP 扩展,请使用使用带有 php-8.4- 前缀的 PHP 扩展名称的 apt install 命令。例如,gd 扩展与 php8.4-gd 包一起安装:
sudo systemctl status php8.4-fpm
以下命令安装大多数 PHP 库和框架所需的一组最常见的 PHP 扩展:
sudo apt install php8.4-gd
要搜索其他 PHP 扩展,请使用 apt search 命令:
dpkg -l | grep php | tee packages.txt
开发工具
Xdebug 和代码覆盖工具等开发工具也可以按照相同的包命名约定安装。
在生产中不建议执行此步骤服务器。
Xdebug
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php # Press enter to confirm.sudo apt update
PCOV
sudo apt-get updatesudo apt-get -y install lsb-release ca-certificates curl apt-transport-httpssudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.debsudo dpkg -i /tmp/debsuryorg-archive-keyring.debsudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'sudo apt-get update
5。 Web 服务器集成
根据步骤 3 中安装的服务器 API,Web 服务器集成可能需要额外配置才能使 PHP 8.4 升级生效。
PHP-FPM
当使用 PHP-FPM(通过安装 php8.4-fpm 包)时,需要重新配置 Web 服务器以通过以下方式与 PHP 8.4 FPM 服务器进行通信更新了套接字路径。
Apache:通过打开 PHP 8.4 配置文件可以轻松进行此配置更改:
sudo apt install php8.4-cli
Nginx:更新 fastcgi_pass 指令从旧的 PHP FPM 套接字路径到新的 PHP 8.4 路径:
sudo apt install php8.4-cli libapache2-mod-php8.4
参见Nginx 文档了解更多信息
Caddy Server:更新reverse_proxy指令以使用新的 PHP 8.4 FPM 服务器套接字路径:
sudo apt install php8.4-cli php8.4-fpm
请参阅如何将 Caddy Server 与 PHP 结合使用更多配置细节。
PHP 作为 Apache 模块
如果 PHP 安装为 Apache 模块Apache 模块,以下命令禁用以前的 PHP 模块(本例中为 8.3)并启用新的 PHP 版本:
php -v
以上是适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南的详细内容。更多信息请关注PHP中文网其他相关文章!

DependencyInjection(DI)inPHPenhancescodeflexibilityandtestabilitybydecouplingdependencycreationfromusage.ToimplementDIeffectively:1)UseDIcontainersjudiciouslytoavoidover-engineering.2)Avoidconstructoroverloadbylimitingdependenciestothreeorfour.3)Adhe

到Improveyourphpwebsite的实力,UsEthestertate:1)emplastOpCodeCachingWithOpcachetCachetOspeedUpScriptInterpretation.2)优化的atabasequesquesquesquelies berselectingOnlynlynnellynnessaryfields.3)usecachingsystemssslikeremememememcachedisemcachedtoredtoredtoredsatabaseloadch.4)

是的,itispossibletosendMassemailswithp.1)uselibrarieslikeLikePhpMailerorSwiftMailerForeffitedEmailSending.2)enasledeLaysBetemailStoavoidSpamflagssspamflags.3)sylectynamicContentToimpovereveragement.4)

DependencyInjection(DI)inPHPisadesignpatternthatachievesInversionofControl(IoC)byallowingdependenciestobeinjectedintoclasses,enhancingmodularity,testability,andflexibility.DIdecouplesclassesfromspecificimplementations,makingcodemoremanageableandadapt

使用PHP发送电子邮件的最佳方法包括:1.使用PHP的mail()函数进行基本发送;2.使用PHPMailer库发送更复杂的HTML邮件;3.使用SendGrid等事务性邮件服务提高可靠性和分析能力。通过这些方法,可以确保邮件不仅到达收件箱,还能吸引收件人。

计算PHP多维数组的元素总数可以使用递归或迭代方法。1.递归方法通过遍历数组并递归处理嵌套数组来计数。2.迭代方法使用栈来模拟递归,避免深度问题。3.array_walk_recursive函数也能实现,但需手动计数。

在PHP中,do-while循环的特点是保证循环体至少执行一次,然后再根据条件决定是否继续循环。1)它在条件检查之前执行循环体,适合需要确保操作至少执行一次的场景,如用户输入验证和菜单系统。2)然而,do-while循环的语法可能导致新手困惑,且可能增加不必要的性能开销。

在PHP中高效地哈希字符串可以使用以下方法:1.使用md5函数进行快速哈希,但不适合密码存储。2.使用sha256函数提高安全性。3.使用password_hash函数处理密码,提供最高安全性和便捷性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

记事本++7.3.1
好用且免费的代码编辑器

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。