Mik*_*iLL 3 debian cgi apache-httpd
我是 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 : //www.infiniteglitch.net :8888/manual.html/howto/cgi.html
这是错误日志所说的:
[Sat Jun 06 05:53:24.412867 2015] [authz_core:error] [pid 28374:tid 140381836453632] [client 108.205.62.183:55886] AH01630: client denied by server configuration: /usr/local/apache2
我想也许我在配置 Apache 以允许 CGI 时遗漏了一些东西。
模块 1. 注意:如果Apache已经构建了共享模块支持,则需要确保模块已加载;在您的 apache2.conf 中,您需要确保 LoadModule 指令没有被注释掉。正确配置的指令可能如下所示:
LoadModule cgi_module modules/mod_cgi.so
Run Code Online (Sandbox Code Playgroud)
我不知道它是否是使用共享模块支持构建的。用 apt-get 安装。在配置文件中找不到 LoadModule 行。如果我将上面一行添加到apache2.conf,Apache 将不会重新启动。
ScriptAlias
2. 配置文件中有一个 ScriptAlias,由 AWStats 放置。添加此指令ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/似乎没有做任何事情。我什至尝试将我的 hello(或者我应该说 hellp)脚本移动到/usr/local/apache2/cgi-bin/静止的 403 中。
显式使用选项 甚至尝试添加
Options +ExecCGI
AddHandler cgi-script .cgi
Run Code Online (Sandbox Code Playgroud)
到<Directory /var/www/>指令。
一切都无济于事。下一步有什么想法吗?
[Sat Jun 06 05:53:24.412867 2015] [authz_core:error] [pid 28374:tid 140381836453632] [client 108.205.62.183:55886] AH01630: client denied by server configuration: /usr/local/apache2
Run Code Online (Sandbox Code Playgroud)
这意味着您尚未为您的网络服务器配置授权。
你想要做的是确保你有类似的东西
<Directory /usr/local/apache2/cgi-bin>
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
请注意,在 Debian 中,有一个高级配置系统可以为您完成所有这些工作,如果您会使用它的话 ;-)
为此,首先删除(或注释掉)您已添加的内容。然后:
a2enmod cgi
service apache2 restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20256 次 |
| 最近记录: |