Http (git-http-backend का उपयोग करके) और अपाचे पर Git पुश काम नहीं कर रहा है


11

मैं सख्त तौर पर "स्मार्ट-http" मोड के माध्यम से git-http-backend का उपयोग करके git के लिए पुश प्राप्त करने की कोशिश कर रहा हूं। हालाँकि कई घंटों के परीक्षण और समस्या निवारण के बाद, मैं अभी भी साथ हूँ

error: Cannot access URL http://localhost/git/hello.git/, return code 22
fatal: git-http-push failed`

मैं उबंटू (12.04), Apache2 (2.2.22) और Git (1.7.9.5) के नवीनतम संस्करणों का उपयोग कर रहा हूं और इंटरनेट पर पाए जाने वाले विभिन्न ट्यूटोरियल का अनुसरण किया है, जैसे कि यह http://www.parallelsymmetry.com/howto/git .jsp

मेरी VHost फाइल वर्तमान में इस तरह दिखती है:

<VirtualHost *:80>

    SetEnv GIT_PROJECT_ROOT /var/www/git
    SetEnv GIT_HTTP_EXPORT_ALL
    SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER

    DocumentRoot /var/www/git

    ScriptAliasMatch \
            "(?x)^/(.*?)\.git/(HEAD | \
                                            info/refs | \
                                            objects/info/[^/]+ | \
                                            git-(upload|receive)-pack)$" \
            /usr/lib/git-core/git-http-backend/$1/$2

    <Directory /var/www/git>
            Options +ExecCGI +SymLinksIfOwnerMatch -MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

</VirtualHost>

मैंने अपने परीक्षण रिपॉजिटरी के लिए /var/www/gitफ़ोल्डर का स्वामित्व बदल दिया है root.www-dataऔर मैंने अनाम पुश को सक्षम कर दिया है git config http.receivepack true। मैंने प्रमाणीकृत उपयोगकर्ताओं के साथ भी प्रयास किया है लेकिन उसी परिणाम के साथ।

उपयोग करके रिपॉजिटरी बनाई गई: sudo git init --bare --shared [repo-name]

Apache2 access.log को देखते समय, यह मुझे प्रतीत होता है कि WebDAV का उपयोग करने की कोशिश की जा रही है, और यह कि git-http-backend को कभी भी निकाल नहीं दिया जाता है:

127.0.0.1 - - [20/May/2012:23:04:53 +0200] "GET /git/hello.git/info/refs?service=git-receive-pack HTTP/1.1" 200 207 "-" "git/1.7.9.5"
127.0.0.1 - - [20/May/2012:23:04:53 +0200] "GET /git/hello.git/HEAD HTTP/1.1" 200 232 "-" "git/1.7.9.5"
127.0.0.1 - - [20/May/2012:23:04:53 +0200] "PROPFIND /git/hello.git/ HTTP/1.1" 405 563 "-" "git/1.7.9.5"

मैं क्या गलत कर रहा हूं? क्या यह git और / या अपाचे के संस्करण के साथ एक समस्या है जिसका मैं शायद उपयोग कर रहा हूं?

BTW: मैंने ServerFault और StackOverflow पर git http से संबंधित सभी प्रश्नों को पढ़ा है, और उनमें से किसी ने भी मुझे समाधान नहीं दिया है, इसलिए कृपया इसे डुप्लिकेट के रूप में चिह्नित न करें।


मैं उसी मुद्दे का सामना कर रहा हूं, क्या आपको कोई समाधान मिला है?
ऋषि कुलश्रेष्ठ

@ ऋषिकुलश्रेष्ठ: क्षमा करें, कोई समाधान नहीं मिला। इसके बजाय GitHub पर चले गए ... उन्होंने कहा कि मैंने दीपिका से समाधान की कोशिश नहीं की है। अगर कोई यह सत्यापित कर सकता है कि यह काम करता है तो मैं उस उत्तर को स्वीकार करूंगा।
निल्स मैगने लुंडे

ठीक है, दीपिका के समाधान की कोशिश की, लेकिन कोई सफलता नहीं मिली।
निल्स मैगने लंडे

यहां तक ​​कि मैंने अभी-अभी दीपिका के समाधान की कोशिश की, जो मेरे लिए भी काम नहीं आया।
ऋषि कुलश्रेष्ठ 13

जवाबों:


1

मुझे लगता है कि इस तथ्य का उपयोग किया जा रहा है कि WebDAV का मतलब है कि आपका CGI सामान ठीक से कॉन्फ़िगर नहीं किया गया है।

ScriptAlias ​​का उपयोग करने का प्रयास करें जिस तरह से वे इसे ट्यूटोरियल में दिखाते हैं जो आपने कहा था कि आप इसका अनुसरण कर रहे हैं।

ScriptAlias /git /usr/lib/git-core/git-http-backend

नमस्ते। मैंने ScriptAlias ​​के निर्देश का उपयोग करना शुरू कर दिया था, लेकिन यह काम नहीं किया।
निल्स मैगने लुंडे

यहां भी यही समस्या। क्या आपने हल खोज लिया?
theV0ID

@ theV0ID नहीं, मुझे कभी कोई हल नहीं मिला। GitHub का उपयोग अब स्थानीय Git सर्वर के बजाय।
निल्स मैगने लुंडे

0

इसे ठीक करने के लिए हमें 2 चरणों का उपयोग करके अपाचे सर्वर पर वेबडाव को सक्षम करना होगा

  1. अपाचे की vhost फ़ाइल में सक्षम करें

SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER

DocumentRoot /var/www/git

<Directory /var/www/git>
        Options +ExecCGI +SymLinksIfOwnerMatch -MultiViews

        AllowOverride None
        Order allow,deny
        allow from all
        Dav On
</Directory>

  1. इस कमांड को कमांड प्रॉम्प्ट पर चलाएँ

    a2enmod dav_fs

  2. फिर अपाचे सर्वर को पुनरारंभ करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.