我的托管脚本已被移动,不再有效。
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
我注意到我所在公司的某个人修改了我的脚本,以便我以前有
use lib 'd:/myorig/LIB';
我现在有
use lib '//newhost/LIB';
这应该工作吗?
我尝试了 1800 INFORMATION 的建议并运行了最小的脚本
#!perl -w
use lib '//whatever/lib';
print "success";
...给出了相同的结果。
更新 : ysth 对 FatalsToBrowser 的建议确实揭示了更多信息。看起来路径(由托管公司的某人添加)可能是错误的。
更新 2 : 托管公司现在表示,这些脚本与之前的托管者想法保持一致,但抛出了很多语法错误。 “由于我们无法为您调试脚本,我们建议您联系原始程序员并向他们寻求帮助”。
<grinds teeth>
部分决议:托管公司终于意识到他们没有正确设置权限。他们仍然不正确,并且(啊)他们不允许站点所有者设置文件夹权限,甚至不允许在他们自己站点中的文件夹上设置。
最佳答案
我不知道它是否应该起作用,但我的直觉是它会没事的。然而,两个use lib
您发布的行不等效。
# go to the 'd' drive and use the 'myorigLIB' directory on that drive
use lib 'd:/myorigLIB';
# go to the 'newhostLIB' server - no path is specified - this looks invalid to me
use lib '//newhostLIB';
也许您需要指定服务器上共享的路径?另外,您可能需要查看权限?也许运行 CGI 的用户无法访问该网络路径?
此外,您可以编写一个简单的(非 CGI)程序来测试您的理论并运行它:
#!perl -w
use lib '//whatever/lib';
print "success";
然后,如果可以的话,就在服务器上运行它,看看会发生什么。
关于perl - 'use lib' 是否适用于 UNC 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/765029/