Mercurial Apache Web Access 给出 403 禁止访问

Mercurial Apache Web Access 给出 403 禁止访问

尝试在我的 Ubuntu Server 12.04 机器上启用 mercurial apache web access 后,我在访问时收到 403 Forbidden 错误http://my.site.com/mercurial带有日志:

[2012 年 9 月 4 日星期二 01:20:22] [错误] [客户端 XXXX] 服务器配置拒绝客户端:/mercurial/hgweb.cgi

我已将其添加到 /etc/apache2/sites-available/default

    ScriptAliasMatch ^/mercurial(.*) /mercurial/hgweb.cgi$1
    <Directory /var/www/mercurial>
            Options Indexes FollowSymlinks MultiViews ExecCGI
            Options None
            AllowOverride All
            Order allow,deny
            Allow from all
            AuthType Basic
            AuthName "Repositorio Mercurial"
            AuthUserFile /mercurial/hgusers
            Require valid-user
    </Directory>

这很奇怪,但是当尝试访问 Web 服务器文件夹时,apache 不会要求我输入密码

[web] 
style = gitweb

[collections] 
/mercurial/repositories = /mercurial/repositories

/mercurial/hgwebconfig.cgi (在文件系统上)

配置 = “/mercurial/hgweb.config”

我已将 /mercurial 链接到 /var/www/mercurial

如有任何建议,我们将不胜感激。

谢谢

答案1

由于您使用/mercurial(在文件系统上)作为脚本根目录,因此您需要在那里而不是在 上进行授权配置/var/www/mercurial,尽管符号/mercurial链接到/var/www/mercurial。从Options指令文件

即使服务器遵循符号链接,它也不会改变用于匹配<Directory>部分的路径名。

因此,将您的访问控制<Directory>块移至 for /mercurial- 并且您还需要FollowSymLinkson /。(顺便问一下,为什么它紧跟Options None在其他Options指令之后?)

符号链接使这个变得比它需要的更加复杂和混乱 - 我真的建议摆脱它并使用/var/www/mercurial文件系统路径,这将大大简化情况。

相关内容