2010-03-11 11 views
6

के माध्यम से होस्टिंग Mercurial HG हो रहा है मैंने स्क्रिप्टियास का उपयोग करके एक Mercurial HG संग्रह को होस्ट करने का प्रयास किया है।VisualSVN सर्वर

ScriptAlias ​​/ एचजी/"htdocs/hgwebdir.cgi"

अगर मैं यह cgi फ़ाइल की सामग्री प्रदर्शित Chrome पर जाएं। आईई में यह प्रस्तुत करता है हालांकि छवियों और लिंक प्रदर्शित नहीं होते हैं। किसी भी मामले में मैं जिस भंडार को प्रदर्शित करना चाहता हूं वह दिखाया नहीं गया है।

क्या कोई इसे VisualSVN के साथ काम करने में कामयाब रहा है? यदि मेरे पास विंडोज प्रमाणीकरण और https है तो यह भी काम करेगा?

+0

मैं इस अब दो दिनों के लिए पता लगाने की कोशिश की है !! इच्छा है कि मेरा जवाब था। –

+0

आपको ScriptAlias ​​के अंतिम तर्क के लिए एक पूर्ण पथ का उपयोग करना होगा। –

उत्तर

7

यहां mod_wsgi (फास्ट!), संयुक्त भंडार निर्देशिका का उपयोग करके एक वैकल्पिक सेटअप है, और आप VisualSVN सर्वर GUI से Mercurial रिपॉजिटरी स्तर का उपयोग प्रबंधित कर सकते हैं।

mod_wsgi.so for Apache 2.2 Win32 डाउनलोड करें और "सी: \ प्रोग्राम फ़ाइलें \ VisualSVN सर्वर \ bin" में रखें।

अपनी Mercurial स्थापना (contrib निर्देशिका) से hgwebdir.wsgi को "सी: \ प्रोग्राम फ़ाइलें \ VisualSVN सर्वर \" पर कॉपी करें। यह कुछ इस तरह दिखना चाहिए:

import sys 
sys.path.insert(0, "C:\Program Files\Mercurial\library") 
from mercurial.hgweb.hgwebdir_mod import hgwebdir 
application = hgwebdir('hgweb.config') 

कॉन्फ़िग फ़ाइल ": \ Program Files \ VisualSVN सर्वर \ hgweb.config सी" बनाएँ।

[paths] 
/= c:/Repositories/* 

"सी: \ प्रोग्राम फ़ाइलें \ VisualSVN सर्वर \ conf \ httpd-custom.conf" में निम्नलिखित पेस्ट करें। आपको httpd.conf के अनुभाग के आधार पर Auth * मान समायोजित करना चाहिए।

hg init C:\Repositories\hgtest 

अब आप VisualSVN सर्वर उपकरण के माध्यम से अपने ब्राउज़र के माध्यम से/एचजी तक पहुँचने के लिए, और प्रबंधित भंडार स्तर प्राधिकरण सक्षम होना चाहिए:

LoadModule wsgi_module bin/mod_wsgi.so 
WSGIScriptAlias /hg "hgwebdir.wsgi" 

<Location /hg/> 
    AuthName "Mercurial Repositories" 
    AuthType VisualSVN 
    AuthzVisualSVNAccessFile "C:/Repositories/authz-windows" 
    AuthnVisualSVNBasic on 
    AuthnVisualSVNIntegrated off 
    AuthnVisualSVNUPN Off 

    SVNParentPath "C:/Repositories/" 

    require valid-user 
</Location> 

एक मर्क्युरियल भंडार बनाएँ।

+0

मुझे लगता है कि मैं यह काम करने के बहुत करीब हूं, हालांकि मुझे एक त्रुटि मिल रही है 'अपवाद प्रसंस्करण WSGI स्क्रिप्ट Mercurial' और "फ़ाइल" Mercurial \\ hgweb \\ hgwebdir_mod.pyc ", लाइन 103, __call__ में प्रसंस्करण हुआ। ' पाइथन 2.6 के खिलाफ संकलित नवीनतम मेकुरियल 1.5.1? – dvkwong

+0

मेरी आखिरी टिप्पणी पोस्ट करने के 5 सेकंड बाद मुझे अंततः यह काम करने के लिए मिला! पिछले उत्तर के अनुसार लाइब्रेरी फ़ोल्डर में कॉपी टेम्पलेट फ़ोल्डर। अतिरिक्त चरणों का पालन करने के लिए: 1. पुस्तकालय निकालें। संस्करण 3.3.0 के बाद से mod_wsgi मॉड्यूल VisualSVN सर्वर वितरण में शामिल: मर्क्युरियल में ज़िप पुस्तकालयों फ़ोल्डर में एक फ़ोल्डर बुलाया पुस्तकालयों के लिए स्थापित 2. कॉपी टेम्पलेट्स फ़ोल्डर 3. यदि आप अजगर 2.6 स्थापित सुनिश्चित करें धन्यवाद – dvkwong

+1

FYI करें।।।! : https: //www.v isualsvn.com/server/changes/#v3.3.0 –

0

आप विभिन्न प्रमाणीकरण और https मॉड्यूल के ठीक बाद hgwebdir चला सकते हैं, बशर्ते आपका वेबसर्वर उन्हें REMOTE_USER चर को CGI को सौंप दिया गया हो।

मुझे विजुअलवॉन नहीं पता, लेकिन आपकी स्क्रिप्टअलीस अपाचे की तरह दिखती है। क्या आपको .cgi के लिए AddHandler लाइन चाहिए?

+0

क्या ऐड हैंडलर लाइन नियमित अपाचे सर्वर पर CGI निष्पादित करने के लिए आवश्यक सभी चीजें होनी चाहिए? –

+0

अपाचे में आप "ExecCGI", "AddHandler cgi-script .cgi" और "ScriptAlias" का उपयोग कर फ़ाइलों के निष्पादन को अधिकृत कर सकते हैं। मैं बाद में दो का उपयोग करता हूं। –

3

मान लें कि आपके पास पाइथन 2.6 स्थापित है और काम कर रहा है, यहां दिए गए कदम हैं।

Apache 2.2 Win32 के लिए बनाया गया "mod_cgi.so" प्राप्त करें और इसे "सी: \ प्रोग्राम फ़ाइलें \ VisualSVN सर्वर \ bin" में रखें।

चिपकाएँ_ में "C: \ Program Files \ VisualSVN सर्वर \ conf \ httpd-custom.conf"

LoadModule cgi_module bin/mod_cgi.so 
ScriptAliasMatch ^/hg(.*) "cgi-bin/hgweb.cgi$1" 

cgi-bin निर्देशिका बनाएँ, "C: \ Program Files \ VisualSVN सर्वर \ cgi-bin "। और इसमें hgweb.cgi रखें। यकीन है कि यह निम्नलिखित के समान दिखता है बनाओ:

#!c:/Python26/python.exe -u 

import sys 
sys.path.insert(0, "C:\Program Files\Mercurial\library") 

import cgitb 
cgitb.enable() 

from mercurial.hgweb.hgwebdir_mod import hgwebdir 
import mercurial.hgweb.wsgicgi as wsgicgi 

application = hgwebdir('hgweb.config') 
wsgicgi.launch(application) 

एक फ़ाइल cgi-bin निर्देशिका में hgweb.config बुलाया बनाएँ।

[paths] 
/= c:/HgRepositories/* 

प्रतिलिपि बनाई गई "C: \ Program Files \ मर्क्युरियल \ टेम्पलेट्स" करने के लिए "C: \ Program Files \ मर्क्युरियल \ पुस्तकालय \ टेम्पलेट्स"।

"सी: \ एचजी रिपॉजिटरीज" फ़ोल्डर और "एचजी इनिट सी: \ एचजी रिपोजिटरीज \ टेस्ट" बनाएं।

विजुअल एसवीएन सर्वर को पुनरारंभ करें, ब्राउज़र खोलें, अपने Mercurial भंडार का आनंद लें।

1

मर्क्युरियल के संस्करण 1.6 के साथ शुरू, hgwebdir.wsgi स्क्रिप्ट hgweb.wsgi स्क्रिप्ट के साथ एकीकृत किया गया है। जहां भी hgwebdir.wsgi इन दिशानिर्देशों में संदर्भित है, आप इसके बजाय hgweb.wsgi स्क्रिप्ट को प्रतिस्थापित कर सकते हैं।

https://www.mercurial-scm.org/wiki/modwsgi

संबंधित मुद्दे