2

Я использую 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. Итак, что я могу использовать, чтобы правильно выразить это регулярное выражение?

1 ответ1

1

Я понял это после попытки разных URL:

Эта линия

WSGIScriptAliasMatch ^(.*)$ /var/www/hg/cgi-bin/hgwebdir.wsgi\$1

следует заменить на эту строку:

WSGIScriptAlias / /var/www/hg/cgi-bin/hgwebdir.wsgi/

И все отлично работает :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .