Веб-доступ Mercurial Apache дает мне 403 запрещенного доступа
После попытки включить веб-доступ mercurial apache на моем компьютере с Ubuntu 12.04 у меня появляется ошибка 403 Forbidden при доступе к http://my.site.com/mercurial с журналом:
[Вторник, 04 сентября 01:20:22 2012] [ошибка] [клиент 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>
Это странно, но apache не запрашивает пароль при попытке доступа к папке веб-сервера
[web]
style = gitweb
[collections]
/mercurial/repositories = /mercurial/repositories
/mercurial/hgwebconfig.cgi (в файловой системе)
config = "/mercurial/hgweb.config"
Я связал / mercurial с / var / www / mercurial
Любой совет будет по достоинству оценен.
Спасибо
1 ответ
Так как вы используете /mercurial
(в файловой системе) в качестве корневого скрипта, вам нужна конфигурация авторизации, а не /var/www/mercurial
, несмотря на то, что /mercurial
символические ссылки на /var/www/mercurial
, Из документации Options
директива:
Несмотря на то, что сервер следует по символической ссылке, он не меняет путь, используемый для сопоставления с
<Directory>
разделы.
Итак, перенесите контроль доступа <Directory>
блок для /mercurial
- и тебе понадобится FollowSymLinks
на /
также. (Кстати, почему у него есть Options None
сразу за другим Options
Директива?)
Символическая ссылка делает это намного более сложным и запутанным, чем это должно быть - я действительно рекомендую избавиться от этого и использовать /var/www/mercurial
Путь к файловой системе, что значительно упростит ситуацию.