升级AlmaLinux后PHP 7.2无法加载pdo_odbc.so问题求助
解决PHP 7.2加载pdo_odbc.so失败的问题
问题背景
服务器升级至AlmaLinux v8.9.0后,切换到PHP 7.2时出现启动报错:
PHP Startup: Unable to load dynamic library 'pdo_odbc.so' (tried: /opt/cpanel/ea-php72/root/usr/lib64/php/modules/pdo_odbc.so (/lib64/libltdl.so.7: file too short), /opt/cpanel/ea-php72/root/usr/lib64/php/modules/pdo_odbc.so.so (/opt/cpanel/ea-php72/root/usr/lib64/php/modules/pdo_odbc.so.so: cannot open shared object file: No such file or directory))
已尝试yum provides */libodbc.so.2和yum reinstall libodbc.so.2,问题未解决。
修复步骤
1. 修复损坏的libltdl.so.7文件
报错提示/lib64/libltdl.so.7: file too short,说明该系统库文件已损坏,需重新安装所属包:
# 查找libltdl.so.7对应的系统包 yum provides */libltdl.so.7 # 重新安装该包(通常为libtool-ltdl) yum reinstall libtool-ltdl
2. 重装PHP 7.2的pdo_odbc扩展
修复系统库后,重新安装对应PHP版本的扩展:
# 针对cpanel环境,执行以下命令 yum reinstall ea-php72-php-pdo_odbc
3. 验证扩展加载状态
执行命令检查PHP是否能正常加载pdo_odbc:
/opt/cpanel/ea-php72/root/usr/bin/php -m | grep pdo_odbc
若输出pdo_odbc,则说明扩展加载成功。
4. 重启服务
根据网站运行环境,重启对应服务:
# 重启Apache systemctl restart httpd # 或重启PHP-FPM(若使用该模式) systemctl restart ea-php72-php-fpm
内容的提问来源于stack exchange,提问作者ahmed saad
相关产品推荐
相关产品推荐

