【发布时间】:2013-12-08 02:22:00
【问题描述】:
您好,由于有关此主题的其他帖子对我没有多大帮助(似乎没有一个适用于 Ubuntu 13.10,即我运行的 Ubuntu 版本),所以我决定再写一个。运行这些行之后(stackoverflow 成员建议运行这些行)..
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/cgi.load .
sudo ln -s ../mods-available/cgid.load .
sudo service apache2 restart
我将 cgi 文件(它们是 perl 文件)放入了我的 Apache2 的 cgi-bin @/usr/lib/cgi-bin。输入 localhost/cgi-bin/test.cgi 时,我收到 500 内部服务器错误。这是服务器错误日志所说的..
[2013 年 11 月 22 日星期五 21:23:29.045785] [cgi:error] [pid 9559] [client 127.0.0.1:47663] AH01215: (8)Exec 格式错误: exec of '/usr/lib/cgi- bin/test.cgi' 失败 [Fri Nov 22 21:23:29.046720 2013] [cgi:error] [pid 9559] [client 127.0.0.1:47663] 头文件前的脚本输出结束:test.cgi
test.cgi 看起来像这样...
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print <<HTML;
<html>
<head>
<title>A Simple Perl CGI</title>
</head>
<body>
<h1>A Simple Perl CGI</h1>
<p>Hello World</p>
</body>
HTML
exit;
有没有人知道当这种情况发生时该怎么办或有任何建议?谢谢
编辑:: 奇怪的是,我得到了这个 cgi 文件,我调用 test2.cgi 来运行。
#!/usr/bin/perl
use strict;
use warnings;
sub main {
print "Content-type: text/html\n\n";
print "Hello world\n\n";
print "What's your favorite food brah?\n";
}
main();
但我需要处理的更大、更高级的 cgi 文件无法运行。这些包括在 html 标签中打印出来的东西。
编辑:忽略代码中任何奇怪的间距。这就是我将其复制到帖子中的方式。
【问题讨论】:
-
不确定,两个 perl 脚本都出现 500 错误。我得到的 apache 错误是,文件不存在:/home/leo/public_html/cgi-bin/sys_cpanel,引用者:xxx.xxx.xxx.xxx/~leo/cgi-bin/test1.cgi :(