Запуск Mercurial с Apache в Windows XP - PullRequest
2 голосов
/ 29 июля 2010

Я изо всех сил пытался заставить Mercurial работать с Apache в Windows XP.

Я прочитал и попробовал предложения в следующих потоках SO: 1 , 2, 3 & 4

Пока все, что я могу, это пустая страница, и при просмотре источника я вижу:

<code><body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> -->
<body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> --> -->
</font> </font> </font> </script> </object> </blockquote> 

С чем я работаю:

  • Apache2.2 - C:\Program Files\Apache Software Foundation\Apache2.2\
  • Python 2.4 (в соответствии с рекомендациями сайта Mercurial) - C:\Program Files\Python\2.4\
  • Mercurial 1.6 - C:\Program Files\Mercurial\
  • mod_python 3.3.1
  • Apache DocumentRoot: C:\htdocs\hg\ доступ через http://hg.paperclip.dev (добавлено в файл hosts)
  • Ртутное хранилище (на сетевом диске): H:\repo\

Я чувствую, что часть осложнений заключается в том, что у меня есть репо на сетевом диске.К которому я могу получить доступ либо через букву сетевого диска H, либо через \\SERVER\WebDev\repo\

My mercurial.ini в каталоге установки Mercurial:

[ui]
editor = Notepad
username = paperclip <p@paperclip.com>

My hgweb.config вHg DocumentRoot обслуживается apache (C:\htdocs\hg\)

[collections]
//SERVER/WebDev/repo = //SERVER/WebDev/repo**

My hgweb.cgi на сервере Hg DocumentRootd apache (C:\htdocs\hg\)

#!C:/Program Files/Python/2.4/python.exe

# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "C:/htdocs/hg/hgweb.config"

# Uncomment and adjust if Mercurial is not installed system-wide:
import sys; sys.path.insert(0, "C:/Program Files/Mercurial/lib")

# Uncomment to send python tracebacks to the browser if an error occurs:
import cgitb; cgitb.enable()

from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb
from flup.server.fcgi import WSGIServer
application = hgweb(config)
WSGIServer(application).run()

Мои файлы VirtualHosts для Apache

<VirtualHost *:80>
  ServerName hg.paperclip.dev
  #ServerAlias paperclip.com *.paperclip.com
  ServerAdmin p@paperclip.com
  CustomLog "logs/hg-access.log" combined
  ErrorLog "logs/hg-error.log"

  RewriteEngine on
  RewriteRule (.*) C:/htdocs/hg/hgweb.cgi/$1

  # Or we can use mod_alias for starting CGI script and making URLs "nice":
  # ScriptAliasMatch ^(.*) C:/htdocs/hg/hgweb.cgi/$1

  <Directory "C:/htdocs/hg/">

    Order allow,deny
        Allow from all
        AllowOverride All
        Options ExecCGI FollowSymLinks +Indexes
        AddHandler cgi-script .cgi

  </Directory>
</VirtualHost>

Принимая во внимание вышеупомянутую конфигурацию, я бы приветствовал некоторые предложения, чтобы это заработало.Все, что я мог попробовать, так как попал в тупик.

Заранее большое спасибо.

-P.

Ответы [ 2 ]

0 голосов
/ 06 января 2012

рт.ст. 2.0.1

Apache 2.2.21

Python 2.6!

#!c:/python26/python.exe
#
# An example hgweb CGI script, edit as necessary
# See also http://mercurial.selenic.com/wiki/PublishingRepositories

# Path to repo or hgweb config to serve (see 'hg help hgweb')
#config = "/path/to/repo/or/config"
config = "c:/batch/merc-web.conf"

# Uncomment and adjust if Mercurial is not installed system-wide
# (consult "installed modules" path from 'hg debuginstall'):
#import sys; sys.path.insert(0, "/path/to/python/lib")
#import sys; sys.path.insert(0, "c:/mercurial")

# Uncomment to send python tracebacks to the browser if an error occurs:
import cgitb; cgitb.enable()

from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb(config)
wsgicgi.launch(application)

забудьте о mod_python: 81 - это IIS на моей машине, а apache на 80 и 91, поэтому http://ap.xxx.tzo.net/cgi-bin/hgweb.cgi работает

<VirtualHost *:80>
ServerName ap.xxx.tzo.net
ServerAlias ap.xxx.tzo.net

ProxyPreserveHost On
ProxyPass / http://localhost:91/
ProxyPassReverse / http://localhost:91/
<Proxy http://localhost:91/>
#  Order Allow,Deny
#  Allow from all
   Order Deny,Allow
   Allow from 127.0.0.1
</Proxy>
</VirtualHost>

также envvar PYTHONPATH C: \ Python26

Я понимаю, что вы находитесь на другой версии HG и т. Д., Но я надеюсь, что это поможет. Я думаю, что это заняло у меня 2 дня;)

Попробуйте с локальным репо, ваш mercurial.ini - N / A. Мой merc-web.conf выглядит так:

[web]
style = coal

[paths]
/hgAppThree = C:\!mark\_dev\hgAppThree

, который применяется как

http://ap.xxx.tzo.net/cgi-bin/hgweb.cgi/hgAppThree

Удачи!

0 голосов
/ 19 августа 2011

Это было опубликовано только вчера:
Настройка Mercurial Server в Windows Machine - учебные пособия устарели

Этому парню удалось заставить HG + Apache работать на Windows 7.
Я знаю, что вы используете XP, а не Win 7, но, возможно, эта ссылка вам в любом случае поможет.

...