我最近开始学习 cgi,并在 vbox 中设置了一个 Ubuntu 服务器。我编写的第一个程序是在 Python 中通过 ssh 使用 vim。然后我在我的 Windows 7 工作站上安装了 Eclipse 并创建了完全相同的 Perl 文件;只是一个简单的 hello world 交易。
我尝试运行它,我得到了 500,而同一目录 (/usr/lib/cgi-bin) 中的 Python 代码显示正常。沮丧的是,我检查并三重检查了权限,并且它以 #!/usr/bin/perl 开头。我还检查了 AddHandler 是否设置为 .pl。一切都设置得很好,一时兴起,我决定使用 vim 在服务器中编写与 Python 文件相同的完全相同的代码。
瞧,它奏效了。我比较了它们,以为我疯了,它们完全一样。那么,有什么关系呢?为什么在 Eclipse 上的 Windows 7 中创建的文件与使用 vim 在 Ubuntu 服务器中创建的文件不同?它们是否有不同的二进制标头或其他东西?这真的会影响我的开发环境。
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Testing.";
阿帕奇错误日志:
[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
这是我得到的持续错误。