将服务器从 php5.4 迁移到 php7.2 后,oci8 无法正常工作。 升级程序: 1.删除php包 2. 安装 php72u-common + 一些额外的东西。
结果:
PHP Warning: PHP Startup: Unable to load dynamic library 'oci8.so' (tried: /usr/lib64/php/modules/oci8.so (/usr/lib64/php/modules/oci8.so: undefined symbol: _zend_list_delete), /usr/lib64/php/modules/oci8.so.so (/usr/lib64/php/modules/oci8.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.2.10 (cli) (built: Sep 13 2018 16:53:29) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.10, Copyright (c) 1999-2018, by Zend Technologies
我在 google 中找不到任何有用的信息。请帮助(这是生产服务器)
编辑: 这肯定不是关于错误的 php.ini 扩展=oci8.so 输出:
PHP Warning: PHP Startup: Unable to load dynamic library 'oci8.so' (tried: /usr/lib64/php/modules/oci8.so (/usr/lib64/php/modules/oci8.so: undefined symbol: _zend_list_delete), /usr/lib64/php/modules/oci8.so.so (/usr/lib64/php/modules/oci8.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
扩展名=oci8 输出:
PHP Warning: PHP Startup: Unable to load dynamic library 'oci8' (tried: /usr/lib64/php/modules/oci8 (/usr/lib64/php/modules/oci8: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/oci8.so (/usr/lib64/php/modules/oci8.so: undefined symbol: _zend_list_delete)) in Unknown on line 0
/usr/lib64/php/modules/oci8.so 存在。
最佳答案
/usr/lib64/php/modules/oci8.so.so: 无法打开共享对象文件
你的字符串末尾有一个额外的.so
。你可能在你的 php.ini 中有这个:
extension = oci8.so
将其更改为:
extension = oci8
关于php7.2和oci8冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52973680/