![由于“zval_ptr_dtor”错误,无法加载 SQLsrv](https://linux22.com/image/732282/%E7%94%B1%E4%BA%8E%E2%80%9Czval_ptr_dtor%E2%80%9D%E9%94%99%E8%AF%AF%EF%BC%8C%E6%97%A0%E6%B3%95%E5%8A%A0%E8%BD%BD%20SQLsrv.png)
我正在尝试按照以下指南安装 PHP MSSQL 驱动程序:https://serverpilot.io/docs/how-to-install-the-php-sqlsrv-extension
但是安装后我一直遇到这个错误(安装过程中没有明显的错误):
PHP Warning: PHP Startup: Unable to load dynamic library 'sqlsrv.so' (tried: /usr/lib/php/20170718/sqlsrv.so (/usr/lib/php/20170718/sqlsrv.so: undefined symbol: zval_ptr_dtor), /usr/lib/php/20170718/sqlsrv.so.so (/usr/lib/php/20170718/sqlsrv.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlsrv.so' (tried: /usr/lib/php/20170718/pdo_sqlsrv.so (/usr/lib/php/20170718/pdo_sqlsrv.so: undefined symbol: zval_ptr_dtor), /usr/lib/php/20170718/pdo_sqlsrv.so.so (/usr/lib/php/20170718/pdo_sqlsrv.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
在我看来,主要问题是这个:
/usr/lib/php/20170718/sqlsrv.so: undefined symbol: zval_ptr_dtor
我已经尝试卸载并重新开始两次了,但还是没能解决。有人能给出如何修复这个问题的建议吗?
我运行 PHP 7.2.14-1+ubuntu18.04.1+deb.sury.org+1。
答案1
我在使用其他插件时也遇到了类似的错误,这是我的解决方案。使用 pecl 安装 .so 插件时,我注意到最后出现了一个错误:
配置选项“php_ini”未设置为 php.ini 位置
为了修复这个问题我只需要输入这个(我的是 php 版本 8)现在它可以工作了:
pear config-set php_ini /etc/php/8.0/apache2/php.ini
答案2
我有同样的问题。我意识到我在编译模块时出错了。我在我的环境中
- PHP 7.2
- php 配置 7.3
因此我卸载了模块:
sudo pecl uninstall sqlsrv
sudo pecl uninstall pdo_sqlsrv
将 php-config 7.2 设置为默认值并重新安装。