我最近学习了CGI,并在vbox中设置了Ubuntu服务器。我写的第一个程序是在Python中使用vim通过ssh。然后,我在我的Windows 7工作站上安装了Eclipse,并创建了完全相同的Perl文件;只是一个简单的问候世界的交易。为什么我的Perl CGI程序返回服务器错误?
我试着运行它,并且我得到了一个500,而同一目录(/ usr/lib/cgi-bin)中的Python代码显示正常。沮丧的是,我检查并三重检查了权限,并以#!/ usr/bin/perl开头。我还检查了AddHandler是否设置为.pl。一切都很好,我决定在vim中使用vim编写相同的代码,就像我使用Python文件一样。
你看,它的工作。我比较他们,认为我疯了,他们是完全一样的。那么,交易是什么?为什么在Eclipse上的Windows 7中创建的文件与在Ubuntu服务器上使用vim创建的文件不同?他们有不同的二进制头文件吗?这可以真正影响我的开发环境。
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Testing.";
Apache的错误日志:
[Tue Aug 07 12:32:02 2012] [error] [client 192.168.1.8] (2)No such file or directory: exec of '/usr/lib/cgi-bin/test.pl' failed
[Tue Aug 07 12:32:02 2012] [error] [client 192.168.1.8] Premature end of script headers: test.pl
[Tue Aug 07 12:32:02 2012] [error] [client 192.168.1.8] File does not exist: /var/www/favicon.ico
这是持续的错误,我得到的。
apache日志显示什么? – 2012-08-07 16:27:10
调试CGI的第一条规则是,如果你得到一个500,你看看服务器日志。第二条规则是,如果出现问题,您可以从同一台机器上的命令行运行它,查看它输出的内容。 – Quentin 2012-08-07 16:28:10
我会在#上投注\ r \ n!而不是\ n – Flexo 2012-08-07 16:28:48