CentOS Stream 9 默认PHP为8.1,需启用Remi仓库并执行dnf module enable php:remi-8.3安装8.3.14,mysqli默认编译但需确认/etc/php.d/下配置启用,验证用php -m | grep mysqli和php -r "var_dump(function_exists('mysqli_connect'));"。

CentOS Stream 9 默认仓库中 PHP 版本为 8.1(截至 2026 年),要安装 PHP 8.3.14 并启用 mysqli 扩展,需使用 Remi 仓库——这是目前最稳定、官方推荐的第三方源,支持 PHP 多版本共存与精细控制。
启用 Remi 仓库并安装 PHP 8.3.14
Remi 提供了完整、签名验证的 PHP 8.3 构建包,适配 CentOS Stream 9 的 dnf 生态:
- 更新系统并安装基础工具:
sudo dnf update -y && sudo dnf install -y dnf-plugins-core epel-release - 启用 Remi 仓库(含 PHP 8.3):
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm - 启用 php83 模块流(关键步骤,否则仍会装 8.1):
sudo dnf module reset php && sudo dnf module enable php:remi-8.3 - 安装 PHP 及核心扩展:
sudo dnf install -y php php-cli php-common php-fpm php-opcache php-gd php-xml php-mbstring php-zip php-bcmath php-json
确认并启用 mysqli 扩展
mysqli 是 PHP 官方扩展,在 Remi 的 php83 包中默认已编译,但需确保其配置文件被加载:
- 检查是否已安装:
php -m | grep mysqli—— 若无输出,说明未启用 - 查看扩展目录位置:
php -i | grep "extension_dir"(通常为/usr/lib64/php/modules) - 确认
mysqli.so文件存在:ls /usr/lib64/php/modules/mysqli.so - 如存在但未加载,手动启用(Remi 通常已自动配置):
编辑/etc/php.d/15-mysqlnd.ini或新建/etc/php.d/20-mysqli.ini,写入:extension=mysqli
验证安装与连接能力
完成安装后,务必验证功能可用性,避免“装了却不能用”:
立即学习“PHP免费学习笔记(深入)”;
- 检查 PHP 和 mysqli 版本:
php -v(应显示 8.3.14)php -i | grep -A5 "mysqli version" - 快速测试连接(无需 MySQL 服务运行):
php -r "var_dump(function_exists('mysqli_connect'));"→ 应返回bool(true) - 若 MySQL 服务已就绪,可进一步测试:
php -r "\$c = mysqli_connect('127.0.0.1', 'root', 'your_pass'); echo \$c ? 'OK' : 'FAIL';"
常见问题处理
安装后遇到扩展不生效或报错,多数源于模块流冲突或配置残留:
-
错误提示 “Unable to load dynamic library ‘mysqli’”:说明
mysqli.so路径不对或依赖缺失。运行ldd /usr/lib64/php/modules/mysqli.so | grep "not found"查漏;通常需安装php-mysqlnd(已包含在上述安装命令中) -
执行
php -m不见 mysqli:检查/etc/php.d/下是否有禁用文件(如15-mysqlnd.ini.disabled),重命名去掉.disabled -
与 Apache 集成时 mysqli 不可用:确认 Apache 使用的是 Remi 的 PHP(
httpd -M | grep php),且重启服务:sudo systemctl restart httpd php-fpm



















