drupal 12 目前并不支持 php 8.5,因为该版本尚未发布,官方最低要求仍为 php 8.2。argon2 算法在 drupal 中通过 ext-argon2 扩展实现,安装方式取决于操作系统:debian/ubuntu 需安装 php-argon2 包,rhel/centos 需启用 remi-php82 仓库并安装 php-libsodium(若使用 libsodium 替代)或编译 argon2 扩展。

Drupal 12 的 PHP 版本要求是什么
Drupal 12 的最低 PHP 版本要求是 8.2,而非 8.5。PHP 8.5 截至当前时间仍未正式发布,因此不存在针对它的官方支持声明。Drupal 11 和 12 均基于相同的 PHP 8.2+ 基线,这是为了确保长期支持(LTS)版本的稳定性和安全性。开发者在升级前应确认服务器运行的是 PHP 8.2、8.3 或 8.4,避免尝试使用未发布的 PHP 8.5。

composer create-project drupal/recommended-project my_site --no-interaction cd my_site php -v # 输出应为 PHP 8.2.x 或更高 ./vendor/bin/drush status
上述命令创建标准项目并验证 PHP 版本。若 php -v 显示低于 8.2 的版本,drush status 将报错并拒绝继续。Drupal 12 不会接受 PHP 8.5,因为该版本不存在于任何稳定发行版中。
立即学习“PHP免费学习笔记(深入)”;
修复 Core bailout 状态损坏安全问题,以及 BZ2、DOM、PDO、Opcache/JIT 内存与执行错误,改进 Unicode 字素处理、URL 解析、TLS 流状态、信号分发及会话错误处理。
如何正确安装 argon2 扩展以支持密码哈希
在 Debian/Ubuntu 系统上,直接安装 php-argon2 包即可启用 argon2 支持。在 RHEL/CentOS 系统中,由于默认仓库不包含此扩展,需从源码编译或使用第三方仓库如 remi。安装后,Drupal 会自动检测并使用 argon2 作为默认密码哈希算法,无需额外配置。

# Debian/Ubuntu sudo apt update sudo apt install php-argon2 # RHEL/CentOS (via remi) sudo dnf install epel-release sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm sudo dnf module install php:remi-82 sudo dnf install php-argon2 # 验证安装 php -m | grep argon2 # 应输出 'argon2'
安装完成后,重启 Web 服务器(如 Apache 或 Nginx + PHP-FPM),然后访问 Drupal 后台,进入“管理 > 配置 > 用户界面 > 密码设置”,确认哈希算法已设为 Argon2id。若未自动切换,手动选择并保存即可生效。注意:不要混淆 ext-argon2 与 libsodium,前者是独立扩展,后者提供其他加密功能但不直接支持 argon2 密码哈希。
当 argon2 扩展未加载时 Drupal 会如何处理密码存储
如果 ext-argon2 未加载,Drupal 会回退到 Bcrypt 算法进行密码哈希。这不会影响登录功能,但会降低安全性,因为 Bcrypt 的计算成本较低且已被认为不如 Argon2 抗 GPU 攻击。管理员应在日志中看到警告信息,提示当前使用的哈希算法非最优。修复方法是确保扩展正确加载,并在 Drupal 配置中显式指定 Argon2id 为默认算法。


















