You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS 9下PHP 8.3.2 CLI无法加载php.d扩展的技术咨询

CentOS 9下PHP 8.3.2 CLI加载php.d扩展配置方案
  • 检查PHP CLI编译参数
    执行php -i | grep "Configure Command",查看编译时是否添加了--with-config-file-scan-dir=/etc/php.d参数。如果没有该参数,说明编译PHP时未开启额外配置目录扫描功能,这是核心问题,需要重新编译PHP并添加该参数。

  • 临时/永久配置扫描目录

    • 临时生效:每次执行CLI命令时指定环境变量,确保路径正确且目录存在:
      PHP_INI_SCAN_DIR=/etc/php.d php -m
      
    • 永久生效:新建或编辑/etc/profile.d/php.sh文件,写入以下内容:
      export PHP_INI_SCAN_DIR=/etc/php.d
      
      执行source /etc/profile.d/php.sh让当前会话生效,重启终端后配置全局生效。
  • 验证php.d目录下的扩展配置文件
    确认/etc/php.d目录中存在mbstring.ini、mysqli.ini、intl.ini文件,文件内的extension指令需指向正确的扩展文件,例如extension=mbstring.so(注意文件名需匹配PHP 8.3版本,部分系统可能带版本后缀)。同时确保文件权限符合要求:

    chmod 644 /etc/php.d/*.ini
    
  • 检查扩展是否存在于CLI的扩展目录
    执行php -i | grep "extension_dir"获取CLI的扩展存放路径,例如/usr/local/lib/php/extensions/no-debug-non-zts-xxxxxx/,检查该目录下是否存在mbstring.so、mysqli.so、intl.so文件。如果不存在,说明网页端的扩展是为PHP-FPM配置的,CLI版本未安装对应扩展,需重新编译安装扩展,或通过dnf安装PHP 8.3 CLI对应的扩展包(若使用包管理器安装PHP)。

  • 修正php.ini配置
    打开/usr/local/lib/php.ini,确认extension_dir指向正确的扩展目录;若编译时已指定扫描目录,无需修改此项,否则依赖环境变量生效。

内容的提问来源于stack exchange,提问作者user3786984

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 16:00:18