0

我已经在 /home/adil/hg/sample-repo 设置了我的 repo,并希望通过 httpd 提供它。我正在关注https://www.mercurial-scm.org/wiki/PublishingRepositories#multiple上的教程,并创建了 hgweb.config 文件并将 hgweb.cgi(重命名为 index.cgi)复制到 /home/adil /网络/水银/

我的 apache 配置(/etc/httpd/conf/httpd.conf)如下所示:

ScriptAlias /hg "/home/adil/web/mercurial/index.cgi"

<Directory "/home/adil/web/mercurial">
    Order allow,deny
    Allow from all
    AllowOverride All
    Options ExecCGI
    AddHandler cgi-script .cgi
</Directory>

index.cgi、hgweb.config 和所有向上的目录都具有世界读取权限

http://localhost/hg给出“403 Forbidden”错误。怎么回事?

PS:Apache 错误日志显示:[Sun Oct 17 06:45:38 2010] [error] [client 1.2.3.4] (13)Permission denied: access to /hg denied

4

2 回答 2

1

我无论如何都不是 Apache 配置专家,但我遇到了这个错误并设法摆脱它。

在我这样做之前,我的 error_log 中出现了这个错误:client denied by server configuration: /Users/svn/Public/hg/hgwebdir.cgi

这是我原来的配置:

ScriptAlias /hg "/Users/svn/Public/hg/hgwebdir.cgi"
<Location /hg>
   AuthType Basic
   AuthName "Mercurial Repositories"
   AuthUserFile /Users/svn/Public/hg/auth
   Require valid-user
</Location>

我添加了一些选项:

ScriptAlias /hg "/Users/svn/Public/hg/hgwebdir.cgi"
<Location /hg>
  Options ExecCGI FollowSymLinks
  Options None
  Order allow,deny
  Allow from all

  AuthType Basic
  AuthName "Mercurial Repositories"
  AuthUserFile /Users/svn/Public/hg/auth
  Require valid-user
</Location>

我也尝试了 Pablo 的版本——我遇到的一个问题是“ScriptAliasMatch ^/hg(.*)”正在捕获渲染浏览器 repo explorer 所需的 hg 徽标和样式表。我不确定这是否适用,hgweb.cgi因为我不使用那个,但在使用hgwebdir.cgi. 具体来说:script not found or unable to stat: /Users/svn/Public/hg/hgweb.cgilogo.png

于 2011-05-12T23:31:16.490 回答
0

可能 Apache 的进程所有者没有访问权限/home/adil/web/mercurial

另外,请检查 Apache 的错误日志(通常位于/var/log/httpd-error.log或类似的地方。它会为您提供额外的信息来调试您的安装。

要检查运行 Apache 进程的用户是什么,请执行以下操作:

$ ps aux | grep http

ps应该显示运行 Apache 的用户是什么。

另外,如果有帮助,这是我的做法:

ScriptAliasMatch        ^/hg(.*)        /usr/local/share/mercurial/www/hgweb.cgi$1
<Directory /usr/local/share/mercurial/www>
  Options ExecCGI FollowSymLinks
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
</Directory>
于 2010-10-17T11:42:32.463 回答