问题描述
在用户目录下运行 PHP 脚本似乎是一个错误,但我一生都找不到解决方案。
我假设(对 linux 不是很好)这是本地用户帐户指向服务器上错误位置的问题。
它在这里查找“/usr/lib64/PHP/modules/oci8” 哪个不存在,但是“/usr/lib64/PHP/modules”包含了我所知道的所有 .so 文件。
PHP -v
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 (libclntsh.so.19.1: 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_oci' (tried: /usr/lib64/PHP/modules/pdo_oci (/usr/lib64/PHP/modules/pdo_oci: cannot open shared object file: No such file or directory),/usr/lib64/PHP/modules/pdo_oci.so (libclntsh.so.19.1: cannot open shared object file: No such file or directory)) in UnkNown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'oci8.so' (tried: /usr/lib64/PHP/modules/oci8.so (libclntsh.so.19.1: cannot open shared object file: No such file or directory),/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.34 (cli) (built: Jan 4 2021 14:20:18) ( NTS )
copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0,copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.34,copyright (c) 1999-2018,by Zend Technologies
ls -l /usr/lib64/PHP/modules 的内容
bcmath.so
bz2.so
calendar.so
ctype.so
curl.so
dom.so
exif.so
fileinfo.so
ftp.so
gd.so
gettext.so
iconv.so
intl.so
json.so
ldap.so
mbstring.so
mcrypt.so
MysqLi.so
MysqLnd.so
oci8.so
opcache.so
pdo_MysqL.so
pdo_oci.so
pdo.so
pdo_sqlite.so
phar.so
posix.so
shmop.so
simplexml.so
sockets.so
sqlite3.so
sysvmsg.so
sysvsem.so
sysvshm.so
tokenizer.so
wddx.so
xmlreader.so
xml.so
xmlwriter.so
xsl.so
感谢任何帮助。
解决方法
假设您的数据库在远程计算机上,然后在运行 PHP 的计算机上安装 Oracle Instant Client(64 位为 here)并使用 ldconfig
方法设置系统库搜索路径。这显示在页面底部的安装说明中。还要确保安装了 libaio
(或 Debian/Ubuntu 上的 libaio1
包)。