我正在尝试使用这些新的Perl Web框架之一(舞者)在便宜的共享主机上重新修复一些令人讨厌的旧网站。 我对现有的Perl安装(5.6.1)有模块依赖性问题,所以我在本地构build了一个新的(5.12)版本。
新的Perl版本在testing我的应用程序或使用开发服务器时似乎工作正常,我希望我可以将CGI脚本更改为指向我的新Perl并且Apache可以正常运行。 不幸的是,在Apache错误日志中,我只是得到:
failed to open log file fopen: Permission denied [Thu Dec 9 14:45:21 2010] [error] [client 138.***.***.***] Premature end of script headers: /home/www/hosts/blahblah/cgi-bin/bb/public/dispatch.cgi
这似乎表明Apache无法find或执行我的新Perl版本,但我不明白为什么不。
我检查了我的本地Perl的权限,他们都是755,我虽然用户www将能够访问和执行正常。 现在我已经用完了想法? 还有什么我可以尝试?
我可以通过SSH连接到托pipe服务器,但没有root权限或访问Apacheconfiguration。
谢谢。
我不确定自己应该“回答”这个问题,但最终我发现了这个问题。 我在〜/ perl5目录下安装了自己的Perl版本,但是Apache显然只能在〜/ www(一个指向我的域名的符号链接)里面看到。重buildPerl和〜/ www / perl5中的所有模块。
得到教训:
这不太可能会帮助有类似情况的人,但你永远不知道。
(顺便说一下,现在我已经解决了构build/运行问题,运行一个像Dancer这样的现代化框架似乎没有用常规的旧CGI工作,可能还有一些configuration问题,但是我的小应用程序似乎非常慢但是这些是针对不同的SF问题的问题。)