当perl脚本失败时,apache error.log中没有错误

时间:2012-08-26 18:14:47

标签: apache logging error-handling mod-perl

我正在尝试调试我的index.pl文件生成错误的原因,但在apache的错误日志中没有任何记录。如何正确设置环境以查看发生了什么? 我不认为文件权限有问题。

这是我使用apache2的虚拟机配置:

<VirtualHost *:80>
    ServerName test_perl
    DocumentRoot /var/www/test
    ErrorLog /var/www/test/error_test.log
    LogLevel debug

   <Directory />
       AllowOverride All
       Options All -Indexes +ExecCGI
       AddHandler perl-script .pl
       PerlHandler ModPerl::Registry
       PerlSendHeader On
   </Directory>
</VirtualHost>

这是HTTP响应:

HTTP/1.1 200 OK
Date: Sun, 26 Aug 2012 18:08:47 GMT
Server: Apache/2.2.22 (Ubuntu)
Content-Type: text/x-perl

没有身体。

但是当我使用命令行运行文件时,我可以看到错误。

谢谢。

2 个答案:

答案 0 :(得分:0)

虽然您可能不希望正文为空,但似乎您的HTTP响应没有出现错误情况。您可以查看命令行调用和HTTP调用之间的区别。用于此目的的一个工具是Apache的printenv example CGI script

答案 1 :(得分:0)

默认情况下,所有warnSTDERR的输出都转到主Apache错误日志,而不是在vhost配置中指定的ErrorLog

另请参阅https://serverfault.com/questions/525627/on-apache2-mod-perl2-stderr-output-doesnt-go-to-logfile-nominated-by-errorlog/918627#918627