在AWS Linux2023 ARM架构安装MS SQL PHP驱动遇问题求助
AWS Linux 2023安装SQL Server PHP驱动问题解决指南
问题根源
你碰到的加载失败错误,核心原因是驱动版本和AWS Linux 2023的系统环境不匹配,如果你的EC2是ARM架构(比如Graviton实例),还存在官方预编译驱动缺失的问题:
- AWS Linux 2023基于RHEL 9内核,和CentOS7/8的依赖库版本差异很大,直接用旧版本驱动肯定加载失败
- 微软目前只提供x86_64架构的预编译驱动,ARM架构得自己编译
分架构解决方案
1. x86_64架构实例
别再用CentOS7/8的驱动了,直接选RHEL 9对应的预编译版本:
- 下载匹配你PHP版本的
RHEL9标注驱动包 - 解压后把
.so文件复制到PHP模块目录(用php -i | grep extension_dir查具体路径,一般是/usr/lib64/php/modules/) - 在
/etc/php.d/目录新建两个配置文件:30-sqlsrv.ini里写:extension=sqlsrv.so31-pdo_sqlsrv.ini里写:extension=pdo_sqlsrv.so
- 重启PHP-FPM或者Apache,用
php -m | grep sqlsrv检查是否加载成功
2. ARM架构(Graviton)实例
官方没预编译包,只能手动编译:
- 先装依赖:
sudo dnf install php-devel php-pear gcc-c++ make unixODBC-devel - 用PECL编译安装:
sudo pecl install sqlsrv pdo_sqlsrv - 编译完之后按照上面x86的步骤添加配置文件,重启服务验证
额外排查点
- 如果复制
.so后还是报错,检查文件权限:sudo chmod 755 /usr/lib64/php/modules/sqlsrv.so /usr/lib64/php/modules/pdo_sqlsrv.so - 确保系统装了unixODBC:
sudo dnf install unixODBC
内容的提问来源于stack exchange,提问作者Alec Smythe
相关产品推荐
相关产品推荐

