Apache里建了一个虚拟主机,发现该虚拟主机不能指定Perl解析器的路径,即#!行失效。
应该是虚拟主机配置的问题,因为Apache默认的CGI虚拟目录不存在这个问题。于是打开httpd.conf找答案,发现和Perl有关的配置文件就一个:apache/conf/extra/perl.conf,于是在该文件添加:

<Directory "F:/dalongnan.com">
<FilesMatch "\.pl$">
SetHandler cgi-script
</FilesMatch>
</Directory>

重启Apache,问题解决!
运行一个cgi程序,500错误:Premature end of script headers,OMG,竟然忘了先输出http头,在脚本开头添加:

print "content-type:text/html;charset=utf-8;\n\n";

其实只要输出两个换行就行了,不过这样不规范。

上一篇 下一篇