मैं अपाचे और गिट-http-backend.exe का उपयोग कर डब्ल्यूएस 2008 मशीन पर गिट सर्वर (1.7.2.3) स्थापित करने की प्रक्रिया में हूं। मैं एक अच्छी टट here का पालन कर रहा हूं। मैं जीयूआई काम कर रहे है, मैं क्लोन annoymously कर सकते हैं और अगर मैं एक रेपो की config में निम्नलिखित डाल मैं annoymously धक्का कर सकते हैं:विंडोज पर गिट सर्वर सेट करना git-http-backend.exe
[http]
receivepack = true
मैं जोड़ लिया है httpd.conf फाइल में निम्नलिखित:
SetEnv GIT_PROJECT_ROOT C:/GIT/Repositories
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAliasMatch \
"(?x)^/(.*/(HEAD | \
info/refs | \
objects/(info/[^/]+ | \
[0-9a-f]{2}/[0-9a-f]{38} | \
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
git-(upload|receive)-pack))$" \
"C:/Program Files (x86)/git/libexec/git-core/git-http-backend.exe/$1"
<Directory />
Allow from all
</Directory>
<LocationMatch "^/git/.*/git-receive-pack$">
AuthType Basic
AuthName "Git Access"
AuthUserFile C:/GIT/ApacheConfig/users
AuthGroupFile C:/GIT/ApacheConfig/groups
Require group repogeneral
</LocationMatch>
जब मैं "LocationMatch" जोड़ने मैं अभी भी annoymously या यूआरएल, Git क्लोन http://[email protected]
यह एक पासवर्ड और क्लोन के लिए संकेत देगा में एक नाम निर्दिष्ट करने के द्वारा क्लोन कर सकते हैं।
लेकिन जब मैं निम्नलिखित रेपो मैं पाने के लिए पीछे धकेलने के लिए प्रयास करें:
त्रुटि: यूआरएल http://[email protected]/newtestrepo.git/, वापसी कोड 22 घातक पहुंच नहीं सकते: Git-http-धक्का विफल रही
मैं देख कर दिया गया है उदाहरण के लिए http-backend.exe man page पर लेकिन उन्हें काम पर नहीं लाया जा सकता है।
यहाँ, मेरे समूहों फ़ाइल है (यह सिर्फ इतना है कि prod में इस्तेमाल किया जाएगा तो कुछ भी नहीं है उदाहरण बाहर परीक्षण कर रहा है):
jon:$apr1$kEKVExYx$guIF9oYV8buGhFLZr16XN0
steve:$apr1$jvgjF9nv$PvWsHH.cSOBN5ymk6NT1B0
admin:$apr1$vzXgDskN$oszCei3tkHNUgtLj2HkHF/
web:$apr1$wS0do7hb$VA9tsc9c9LwY5PcjfhdwK0
मुझे पता है:
admin: jon steve admin
webview: jon steve web
repogeneral: jon steve
testrepo: jon admin
testrepo2: jon steve web
यहाँ
उन फाइल है उपयोगकर्ता नाम जोन काम करता है जैसे कि मैंने gui सेक्शन पर निर्देशिका आवश्यकता डाली है, मैं उपयोगकर्ता नाम जोन नो समस्या के साथ लॉगिन कर सकता हूं, (उसी उपयोगकर्ता और समूह फ़ाइलों को स्थानमैच के रूप में इंगित करता है)।
मुझे यकीन नहीं है कि इस बिंदु पर मैं किस कॉन्फ़िगरेशन को याद कर चुका हूं, (इसे कॉन्फ़िगरेशन समस्या मानते हुए)।
इस अंतिम बाधा को पाने पर कोई सलाह शानदार होगी।
संपादित
मैं कुछ और अधिक और यहां खेल रहे हैं जानकारी मेरे पास है है:
अगर मैं के साथ एक रेपो क्लोन:
git clone http://[email protected]/remotetest.git
मैं भंडार बाहर निकल सकते हैं, लेकिन जब मैं कोशिश करता हूं और वापस धक्का देता हूं:
गिट पुश मूल मास्टर
मैं अपने पासवर्ड के लिए पूछा मिलता है, मैं इसे दर्ज करते हैं, तो इसे फिर से उसके द्वारा मांगी, तो मैं निम्नलिखित त्रुटि मिलती है:
C: \ अस्थायी \ remotetest \ remotetest> Git धक्का मूल मास्टर पासवर्ड: पासवर्ड : त्रुटि: यूआरएल http://[email protected]/remotetest.git/ तक नहीं पहुंच सकता, कोडघातक: git-http-push विफल
मेरे अपाचे पहुंच में।लॉग इन करें मैं निम्नलिखित:
192.168.1.2 - - [29/Sep/2010:21:58:19 +0100] "GET /remotetest.git/info/refs?service=git-upload-pack HTTP/1.1" 200 38
192.168.1.2 - - [29/Sep/2010:21:58:51 +0100] "GET /remotetest.git/info/refs?service=git-receive-pack HTTP/1.1" 403 -
192.168.1.2 - - [29/Sep/2010:21:58:51 +0100] "GET /remotetest.git/info/refs HTTP/1.1" 200 -
192.168.1.2 - - [29/Sep/2010:21:58:51 +0100] "GET /remotetest.git/HEAD HTTP/1.1" 200 23
दिलचस्प बात यह है कि जब मैं यूआरएल यह कोई बात नहीं है कि मैं क्या पासवर्ड में डाल में उपयोगकर्ता नाम के साथ क्लोन है, यह अभी भी काम करेगा। मुझे लगता है कि ऐसा इसलिए है क्योंकि मुझे गुमनाम रूप से खींचने में सक्षम होना चाहिए। निश्चित नहीं है कि वह उस बिंदु पर पासवर्ड क्यों मांगता है।
मैं भी लॉग गलती से यह देखें:
[Wed Sep 29 22:33:00 2010] [error] [client 192.168.1.2] client denied by server configuration: C:/Program Files (x86)/Git/libexec/git-core/git-http-backend.exe
[Wed Sep 29 22:33:00 2010] [error] [client 192.168.1.2] client denied by server configuration: C:/Program Files (x86)/Git/libexec/git-core/git-http-backend.exe
संपादित 2
मैं ऐसा करके पासवर्ड फ़ाइल पुनः बनाने की कोशिश की:
htpasswd -c -m C:/git/apacheconfig/users jon
लेकिन इससे सहायता नहीं मिली ।
संपादित 3
httpd.conf में पीएचपी config जहां इसे इस्तेमाल करता है एक ही उन मूल प्रमाणीकरण के लिए फ़ाइल:
<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs">
AuthName "GitUsers"
AuthType Basic
AuthUserFile C:/GIT/ApacheConfig/users
AuthGroupFile C:/GIT/ApacheConfig/groups
require group webview
</Directory>
संपादित 4
ठीक तो मैं प्राप्त कर सकते हैं खुशी से परेशान मोड में क्लोनिंग और धक्का देने के लिए, लेकिन धक्का के लिए प्रमाणीकरण विफल रहता है।
<VirtualHost *:80>
SetEnv GIT_PROJECT_ROOT "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/repositories"
SetEnv GIT_HTTP_EXPORT_ALL
<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/repositories">
Options Indexes FollowSymLinks MultiViews Includes ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<LocationMatch "^/repositories/.*/git-receive-pack$">
AuthType Basic
AuthName "Git Access"
AuthUserFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/repositories/.htpasswd"
Require valid-user
</LocationMatch>
ScriptAliasMatch \
"(?x)^/repositories/(.*/(HEAD | \
info/refs | \
objects/(info/[^/]+ | \
[0-9a-f]{2}/[0-9a-f]{38} | \
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
git-(upload|receive)-pack))$" \
"C:/Program Files (x86)/Git/libexec/git-core/git-http-backend/$1"
ErrorLog C:/GIT/error_log
CustomLog C:/GIT/access_log combined
</VirtualHost>
दिलचस्प बात यह है कि जब मैं एक नया रेपो बनाया (Git init --bare newrepo.git) यह एक जानकारी का निर्माण नहीं किया:
C:\temp\test2\temp\test>git push origin master
Password:
Password:
error: Cannot access URL http://[email protected]:8000/repositories/test.git/, return code 22
fatal: git-http-push failed
मैं निम्नलिखित का उपयोग करने के httpd.conf बदल/फाइल refs। मुझे इसे बनाने के लिए "गिट अपडेट-सर्वर-जानकारी" कमांड करना था।
अपाचे पहुंच लॉग है कि एक संकेत हो सकता है दिलचस्प कुछ है:
192.168.10.97 - - [05/Oct/2010:22:48:26 +0100] "GET /repositories/test.git/info/refs?service=git-receive-pack HTTP/1.1" 200 -
192.168.10.97 - - [05/Oct/2010:22:48:26 +0100] "GET /repositories/test.git/HEAD HTTP/1.1" 200 23
192.168.10.97 - - [05/Oct/2010:22:48:28 +0100] "PROPFIND /repositories/test.git/ HTTP/1.1" 405 248
है कि जब मैं "पुश" वापस रेपो करने के लिए कोशिश कर रहा था, लेकिन वे आदेश और कोई पद प्राप्त कर रहे हैं। सुनिश्चित नहीं है कि PROPFIND क्या है, अभी तक उस पर अधिक जानकारी नहीं मिली है। मुझे लगता है, (चारों ओर पढ़ना), कुछ प्रकार की पुनर्लेखन हो सकती है, जो एक जीईटी में पोस्ट बदल रही है और इसे मार रही है, या कुछ। हालांकि मैं इस बिंदु पर अपनी गहराई से बाहर हूं।
धन्यवाद
मुझे यकीन है कि नहीं कर रहा हूँ क्यों "' htdocs' "' Directory'definition की अवधि में चित्र में आता है:
यहाँ मेरा अंतिम httpd.conf फ़ाइल है। – VonC
जो अपाचे के लिए फ़ाइलों को सेवा देने के लिए डिफ़ॉल्ट स्थान है। मैं रिपॉजिटरीज दिखाने के लिए PHP gui का उपयोग करता हूं, यह वही ऑथ्यूसरफ़ाइल का उपयोग करता है और पॉपअप लॉगिन देता है और उसी उपयोगकर्ता नाम और पासवर्ड के साथ काम करता है। यह सुनिश्चित करने के लिए कि अपाचे उपयोगकर्ता पासवर्ड फ़ाइल को समझ सके, परीक्षण के रूप में इसका उपयोग कर रहा है। – Jon
यह प्रश्न http://serverfault.com/ पर होना चाहिए क्योंकि यह प्रोग्रामिंग के साथ कम करता है और सेटअप और कॉन्फ़िगरेशन के साथ और अधिक नहीं, नहीं? –