после попытки включить ртутный веб-доступ к apache в моем окне Ubuntu Server 12.04 у меня возникла ошибка 403 Forbidden при доступе http://my.site.com/mercurial с журналом:
[Вт, 04 сентября, 01:20:22 2012] [ошибка] [клиент X.X.X.X] клиент отклонен конфигурацией сервера: /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
Любой совет будет очень признателен.
Спасибо
Поскольку вы используете /mercurial
(в файловой системе) в качестве корня вашего скрипта, вам нужна конфигурация авторизации там, а не на /var/www/mercurial
, несмотря на то, что /mercurial
символические ссылки на /var/www/mercurial
. Из документация Options
директива:
Несмотря на то, что сервер следует по символической ссылке, он не меняет путь, используемый для сопоставления с
<Directory>
разделы.
Итак, переместите контроль доступа <Directory>
блок для /mercurial
- и тебе понадобится FollowSymLinks
на /
также. (Кстати, а почему у него Options None
сразу после другого Options
директива?)
Символическая ссылка делает это намного более сложным и запутанным, чем должно быть - я бы действительно рекомендовал избавиться от этого и использовать /var/www/mercurial
путь к файловой системе, что значительно упростит ситуацию.