对于PHP和Oracle,我遇到了一个非常令人困惑的情况。我在Centos 7上运行。我的脚本在Apache下得到了错误“error:”,但是脚本在命令行中运行得很好。
在运行测试脚本时,在命令行中列出驱动程序:
foreach(PDO::getAvailableDriver()作为$driver)回显$driver,‘
"\n";
它返回:
mysql 保监处 pgsql 方石岩
但是,在apache下运行时,oci缺少:
mysql pgsql 方石岩
为了增加这一谜团,运行phpinfo()一节中的“附加.ini文件”解析了/etc/php.d/pdo_oci.ini (用于控制台和apache)的条目。
对于为什么在apache下运行脚本时oci驱动程序没有出现,有什么想法吗?
发布于 2017-01-29 19:06:27
我“解决”了这个问题,通过使用Oracle安装配置让它工作。我安装了即时客户端,这使PHP能够识别命令行和apache下的oci模块(使用./ pdo_oci - with =instantclient,/usr,11.2)构建
还有一些未被识别的TNS_ADMIN值的问题。为此,我为Oracle连接使用了另一种PDO规范:
oci:dbname=//HOST:PORT/SERVICE_NAME
感谢任何能花时间在这上面的人。与许多与甲骨文相关的经历一样,这种经历也提醒了我为什么使用Postgres。
https://stackoverflow.com/questions/41918290
复制相似问题