CentOS系统cPanel环境下安装sqlsrv扩展:ini编辑及签名文件疑问
在cPanel(CentOS)环境中安装SQLSRV驱动的完整解决方案
我来帮你解决这两个核心问题,都是cPanel服务器上安装PHP扩展的常见痛点:
一、是否需要复制签名文件?
这取决于你的服务器是否启用了PHP扩展签名验证(cPanel默认开启这个安全机制):
- 如果启用了签名验证:必须把对应的
.sig签名文件和.so扩展文件一起放到/php/ext目录。PHP会校验扩展的签名完整性,没有签名文件的话,扩展会加载失败,你会在PHP错误日志里看到类似zend_extension: cannot validate signature的报错。 - 如果服务器手动关闭了签名验证(非常少见):不复制签名文件可能也能运行,但从安全和兼容性角度,强烈建议一并复制,避免后续系统更新后出现意外问题。
二、如何编辑PHP配置(绕过cPanel的php.ini编辑限制)
cPanel生成的php.ini确实不能直接手动编辑——系统更新、cPanel操作都可能覆盖你的修改。正确的做法有两种,优先推荐图形界面方式:
方法1:用cPanel自带的MultiPHP INI Editor(最安全)
- 登录cPanel面板,找到「软件」栏目下的
MultiPHP INI Editor - 选择你要配置的域名对应的PHP版本(cPanel支持多版本PHP共存,别选错了)
- 切换到「编辑器模式」或者「基础模式」,添加以下两行配置(根据你的扩展文件名调整,一般是
sqlsrv.so和pdo_sqlsrv.so):extension=sqlsrv.so extension=pdo_sqlsrv.so - 点击「保存」,cPanel通常会自动重启PHP服务;如果没生效,你可以在「重启服务」里找到
PHP-FPM服务手动重启。
方法2:添加自定义PHP配置文件(适合命令行操作)
如果图形界面不方便,你可以在对应PHP版本的配置目录添加自定义INI文件:
- 先找到当前PHP版本的配置目录,格式一般是
/opt/cpanel/ea-phpXX/root/etc/php.d/(把XX换成你的PHP版本号,比如74、81) - 在这个目录下创建一个新文件,比如
99-sqlsrv.ini(数字前缀确保它最后加载,优先级最高) - 在文件里写入:
extension=sqlsrv.so extension=pdo_sqlsrv.so - 保存后重启PHP服务,命令如下(替换
XX为你的PHP版本):systemctl restart ea-phpXX-fpm.service
验证安装是否成功
配置完成后,你可以用两种方式确认:
- 创建一个
phpinfo.php文件,内容为<?php phpinfo(); ?>,访问这个页面搜索sqlsrv和pdo_sqlsrv,能找到相关章节就说明成功了。 - 或者通过命令行执行:
php -m | grep sqlsrv,如果输出sqlsrv和pdo_sqlsrv两个条目,就代表扩展已经正常加载。
内容的提问来源于stack exchange,提问作者TakeDown
相关产品推荐
相关产品推荐

