为什么我的Perl CGI脚本找不到Oracle DBD?

5 sql oracle permissions perl

DBD和Oracle Masters:

我有一个奇怪的Perl Web应用程序.我正在使用它从Oracle DB中读取一些内容并报告.我安装了Oracle的Instant Client 11.1.0.6.0版.我正在运行WinXP并将PATH环境变量设置为即时客户端位置.我为我的网络服务器安装了Apache2.

这就是问题:当我从命令行运行应用程序时,它可以正常运行.但是,当我从http://127.0.0.1/cgi-bin/a.cgi运行时,我收到以下数据库访问错误:

install_driver(Oracle) failed: Can't load 'C:/usr/lib/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: load_file:The specified module could not be found at C:/usr/lib/DynaLoader.pm line 202. at (eval 9) line 3

Intuition告诉我这是一个许可问题,但我不确定在哪里可以看得更远.任何人都可以对此有所了解吗?我非常感谢任何帮助.

谢谢,Saker Ghani

Aln*_*tak 2

该错误显示 .DLL 的完整路径这一事实表明系统在查找 DLL 时没有遇到任何问题,因此这确实支持了您的理论:文件权限是问题所在。

要测试这是否确实是权限问题,请尝试编写一个简单的 Perl CGI 脚本,该脚本不执行任何操作,只是直接打开该特定的 .DLL 文件(使用正常open调用)并报告它是否有效。