当尝试运行从PHP网页创建新的oracle数据库的perl脚本时,会引发错误。
更新了以下环境变量:
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':无法打开共享对象文件:/usr/lib64/perl5/DynaLoader.pm第190行处没有此类文件或目录。 在(eval 17)第3行。 (eval 17)第3行的require编译失败。 可能未在预期的位置安装必需的共享库或dll 在(eval 10)行22698。
即使单独运行perl脚本,而无需通过在Linux服务器上执行"perl script.pl"
来从Web php页面调用,代码也已执行且没有错误。
答案 0 :(得分:0)
实际上,错误消息包含重要的指针(强调我的意思):
install_driver(Oracle)失败:无法加载 '/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so'用于模块 DBD :: Oracle: libclntsh.so.12.1:无法打开共享对象文件:否 此类文件或目录位于/usr/lib64/perl5/DynaLoader.pm第190行。 (eval 17)第3行。(eval 17)第3行的要求中编译失败。 可能未在其中安装必需的共享库或dll 预计在(eval 10)行22698。
当Oracle's "instant client"库通过LD_LIBRARY_PATH
环境变量不可用时,会出现此问题。这组库包含libclntsh.so
(以及后缀取决于版本)。安装完成后,只需确保LD_LIBRARY_PATH
中存在相应的路径即可。