【发布时间】:2019-02-09 13:32:58
【问题描述】:
当尝试运行从 PHP 网页创建新 oracle 数据库的 perl 脚本时,会引发错误。
- 我的 PHP 页面托管在 linux 服务器 (centos7) 上
-
更新了以下环境变量:
export ORACLE_HOME=oracle home path export LD_LIBRARY_PATH=$ORACLE_HOME/lib export PATH=$ORACLE_HOME/bin:$PATH -
点击 HTML 按钮后,从 PHP 代码执行 perl 工具:
exec("perl scriptName.pl" ) -
出现以下错误:
install_driver(Oracle) 失败:无法为模块 DBD::Oracle 加载“/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so”:libclntsh.so.12.1:无法打开共享对象文件:/usr/lib64/perl5/DynaLoader.pm 第 190 行没有这样的文件或目录。 在(评估 17)第 3 行。 在 (eval 17) 第 3 行的 require 中编译失败。 也许所需的共享库或 dll 未安装在预期的位置 在(eval 10)第 22698 行。
即使单独运行 perl 脚本而不通过在 linux 服务器上执行:
"perl script.pl"从 web php 页面调用,代码也已执行并且没有引发错误。
【问题讨论】:
-
你检查过
/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so文件是否存在吗? -
@HåkonHægland 是的,我做到了,文件存在。
-
好的,抱歉,我不熟悉从 Web 服务器运行
perl,所以我想我不能在这里给出好的建议。你可以试试google 或者调试DynaLoader.pm。找到它的源文件,然后转到第 190 行并尝试了解发生了什么......
标签: php linux perl centos7 oracle12c