一两天前我在 Stack Overflow 上问过这个问题,但还没有得到任何回复。希望在 Debian Jessie 上配置并运行 AWStats 时获得一些见解。
安装了 AWStats 和apt-get install awstats
.没什么好抱怨的。
以同样的方式安装Apache2。
复制/usr/share/doc/awstats/examples/apache.conf
到/etc/apache2/conf-available/awstats.conf
.
激活与sudo a2enconf awstats
.
重新启动 Apache sudo systemctl restart apache2.service
。
使用端口 8888 并在浏览器中获得“禁止”响应:
http://infiniteglitch.net:8888/cgi-bin/awstats.pl
从命令行运行只会给出帮助文档。
权限是644。所有者是root。
请问这里缺少什么步骤或配置?
答案1
我做的第一件事(有用的)就是在 cgi-bin 中发布一个简单的“hello world”脚本:
#!/usr/bin/perl
# hello.pl -- my first perl script!
print "Content-type: text/html\n\n";
print <<"EOF";
<HTML>
<HEAD>
<TITLE>Hello, world!</TITLE>
</HEAD>
<BODY>
<H1>Hello, world!</H1>
</BODY>
</HTML>
EOF
还是禁止的。确保所有权限都755
适用于目录和644
文件。尝试将各种文件的所有权更改为root:root
, myusername:www-data
.
Linode(网络托管)的某人建议使用以下方法检查文件权限:
sudo apt-get install tree
tree -puf /usr/lib | grep cgi
tree -puf /var/www
显示文件、所有权和权限的树。凉爽的!
检查Apache错误日志:
$ sudo cat /var/log/apache2/error.log
嗯:
[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
发布了更有用的问题,加入 Debian 电子邮件列表并参考文档:/usr/share/doc/apache2/README.Debian
然后得到以下 SO 响应:
这意味着您尚未为网络服务器配置授权。
你想要做的是确保你有类似的东西
<Directory /usr/local/apache2/cgi-bin>
Require all granted
</Directory>
请注意,在 Debian 中,有一个高级配置系统,如果您愿意使用的话,它可以为您完成所有这些工作;-)
为此,请首先删除(或注释掉)您已添加的内容。然后:
a2enmod cgi
service apache2 restart
注释掉 AWStats 所做的更改、运行a2enmod
、重新启动并且“Hello World”起作用。将 AWStats 配置更改恢复为etc/apache2/apache2.conf
:
#
# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory "/usr/local/awstats/wwwroot">
Options None
#Options Index FollowSymLinks
AllowOverride All
Require all granted
</Directory>
浏览器中有 AWStats。惊人的。