我正在尝试编写一个从 HTML 页面调用的 CGI 程序。CGI代码片段如下:
#!/bin/bash
echo "Content-type: text/html"
echo "<html>"
echo "<body>"
echo "Hi"
echo "</body>"
echo "</html>"
Run Code Online (Sandbox Code Playgroud)
但是在执行脚本后,我可以看到500:Internal Server Error浏览器页面。.
以下可以在错误日志文件中看到
[Wed Apr 09 18:36:59 2014] [error] [client 127.0.0.1] malformed header
from script. Bad header=<html>: image.sh
[Wed Apr 09 18:37:14 2014] [error] [client 127.0.0.1] malformed header
from script. Bad header=<html>: image.sh
Run Code Online (Sandbox Code Playgroud) 我是 Sysadmin 和 Apache 配置的新手。试图让 AWStats 运行,但在故障排除时已经尝试在端口 8888 上运行一个简单的 Hello World(html 输出)脚本,并且遇到了 403 Forbidden 的问题。
这不是脚本:
mikekilmer@glitchbox:/var/www/html$ perl /usr/lib/cgi-bin/hello.pl
Content-type: text/html
<HTML>
<HEAD>
<TITLE>Hello, world!</TITLE>
</HEAD>
<BODY>
<H1>Hello, world!</H1>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)
Shebang 匹配 perl 的路径: #!/usr/bin/perl
这些是主要的配置设置:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
目录和文件权限为 755 和 644,所有权为 root:root(在 cgi-bin 和 perl 文件上)。
Apache 的 html/index.html 出现:http …