我刚刚从 Ubuntu 服务器升级到 14.0.4 LTS,我无法再通过 Web 界面访问 Mailman。我收到 403 禁止错误(禁止:您无权访问 /cgi-bin/mailman/)。我已经检查过 apache 配置几次了,没有发现问题。
我正在运行 Apache 2.4.7 和 Mailman 2.1.16。这是我的 /etc/mailman/apache2.conf 中的配置。我不确定此时还能查看哪里。这可能是虚拟主机问题吗?
# Logos:
Alias /images/mailman/ /usr/share/images/mailman/
# Use this if you don't want the "cgi-bin" component in your URL:
# In case you want to access mailman through a shorter URL you should enable
# this:
#ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
# In this case you need to set the DEFAULT_URL_PATTERN in
# /etc/mailman/mm_cfg.py to http://%s/mailman/ for the cookie
# authentication code to work. Note that you need to change the base
# URL for all the already-created lists as well.
<Directory /usr/lib/cgi-bin/mailman/>
AllowOverride all
Options +ExecCGI
AddHandler cgi-script .cgi index.cgi
Order allow,deny
Allow from all
</Directory>
<Directory /var/lib/mailman/archives/public/>
Options +FollowSymlinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
<Directory /usr/share/images/mailman/>
AllowOverride all
Order allow,deny
Allow from all
</Directory>
答案1
不,这肯定不是虚拟主机的问题。
(1)
不仅当您的 apache 配置不允许这些目录时,您也会收到 403 错误,而且如果甚至 apache 也没有权限访问该目录。
要了解这一点,您可以非常轻松地进行测试:只需su
向 apache 用户(su www-data -c /bin/bash
)输入以下命令,并尝试进入命名目录、列出它、从中读取文件等,就像 apache 满足您的请求一样。
(2)
无论如何,通常error.log
apache 的大多数内容都包含相对清晰和稳定的理由,说明为什么这样的请求无法提供服务。
(3)
接下来,可以做的事情是:您可以停止 apache,然后使用 strace 重新启动。所以:
strace -s 200 -f -o trace.txt apachectl start
它会很慢,但你会得到一个非常详细日志trace.txt
,您将能够从中找出问题究竟是什么。不幸的是,整个技巧对您来说可能非常神秘。
(4)可能的解决方案:
在 apache 2.2 和 2.4 之间,配置文件语法略有变化。您的 ubuntu 升级可能升级了 apache,但没有更改配置。阅读此内容可获得更详细的答案:https://httpd.apache.org/docs/2.4/upgrading.html#access。