Mercurial + Apache выдает ошибку 403 - PullRequest
       11

Mercurial + Apache выдает ошибку 403

0 голосов
/ 17 октября 2010

Я установил репо в / home / adil / hg / sample-repo и хочу обслуживать его через httpd.Я следую руководству по https://www.mercurial -scm.org / wiki / PublishingRepositories # множеству , создал файл hgweb.config и скопировал hgweb.cgi (переименованный в index.cgi) в / home/ adil / web / mercurial /

Мой конфиг 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».WTF?

PS: Журнал ошибок Apache показывает: [Sun 17.10 06:45:38 2010] [error] [client 1.2.3.4] (13) Отказано в доступе: отказано в / hg

Ответы [ 2 ]

1 голос
/ 13 мая 2011

Я ни в коем случае не эксперт по настройке 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 (. *) "захватывал логотип hg и таблицы стилей, необходимые для визуализации обозревателя репозитория браузера.Я не уверен, относится ли это даже к hgweb.cgi, потому что я его не использую, но это определенно было проблемой при использовании hgwebdir.cgi.В частности: script not found or unable to stat: /Users/svn/Public/hg/hgweb.cgilogo.png

0 голосов
/ 17 октября 2010

Возможно, владелец процесса 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>
...