Я понял это после попытки разных URL:
Эта линия
WSGIScriptAliasMatch ^(.*)$ /var/www/hg/cgi-bin/hgwebdir.wsgi\$1
следует заменить на эту строку:
WSGIScriptAlias / /var/www/hg/cgi-bin/hgwebdir.wsgi/
И все отлично работает :)
Я использую Debian Wheezy и хочу установить сервер Mercurial.
Вот что я сделал:
1. Итак, я сначала создал следующие каталоги:
/var/www/hg /var/www/hg/cgi-bin /var/repo /var/repo/hg
2. Внутри /var/www/hg/cgi-bin
папки находятся два файла:
2.1. hgweb.config:
[web] style = coal allow_push = * push_ssl = false [paths] /=/var/repo/hg/**
2.2. hgwebdir.wsgi:
config = "/var/www/hg/cgi-bin/hgweb.config" import cgitb; cgitb.enable(); from mercurial import demandimport from mercurial.hgweb import hgweb application = hgweb(config)
3. Затем я создал запись на сайтах apache2 и перезапустил ее:
<VirtualHost *:80> ServerName hg.********.com DocumentRoot /var/www/hg WSGIScriptAliasMatch ^(.*)$ /var/www/hg/cgi-bin/hgwebdir.wsgi\$1 </VirtualHost>
4. После этого я добавил сюда хранилище с именем «default»:/var/repo/hg/default
Вопрос
Таким образом, в соответствии с этим, я должен иметь.) Mercurial пользовательский интерфейс, потому что "hgweb" вызывается в скрипте и б.) Я должен быть в состоянии извлечь из TortoiseHg. Но ничего из этого пока не работает. Вместо этого я получаю ошибку 404, когда я вызываю домен.
Есть идеи?
Редактировать:
Похоже, что это линия, которая делает проблему:
WSGIScriptAliasMatch ^(.*)$ /var/www/hg/cgi-bin/hgwebdir.wsgi\$1
Потому что, когда я удаляю \$1
, это вроде работает. Это на самом деле не работает, но больше не выдает ошибку 404. Итак, что я могу использовать, чтобы правильно выразить это регулярное выражение?
Я понял это после попытки разных URL:
Эта линия
WSGIScriptAliasMatch ^(.*)$ /var/www/hg/cgi-bin/hgwebdir.wsgi\$1
следует заменить на эту строку:
WSGIScriptAlias / /var/www/hg/cgi-bin/hgwebdir.wsgi/
И все отлично работает :)