मैं एक सर्वर को सेटअप करने की कोशिश कर रहा हूं, जहां मेरा गिट रेपो HTTP (एस) के साथ सुलभ होगा।
मैं gitolite और nginx का उपयोग कर रहा हूं (और वेब इंटरफ़ेस के लिए gitlab लेकिन मुझे संदेह है कि इससे कोई फर्क नहीं पड़ता)।
मैंने पूरी दोपहर खोज ली है और मुझे लगता है कि मैं फंस गया हूं।
मुझे लगता है कि मैं समझ गया हूं कि गिगलाइट के साथ काम करने के लिए nginx को fcgiwrap की आवश्यकता है, इसलिए मैंने कई कॉन्फ़िगरेशन की कोशिश की, लेकिन उनमें से कोई भी काम नहीं करता है।
मेरी रिपॉजिटरी / होम / गिट / रिपॉजिटरी हैं।
यहाँ तीन nginx विन्यास मैंने कोशिश की है।
1:
location ~ /git(/.*) {
gzip off;
root /usr/lib/git-core;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
include /etc/nginx/fcgiwrap.conf;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
fastcgi_param DOCUMENT_ROOT /usr/lib/git-core/;
fastcgi_param SCRIPT_NAME git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT /home/git/repositories;
fastcgi_param PATH_INFO $1;
#fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
}
परिणाम:
> git clone http://myservername/projectname.git test/
Cloning into test...
fatal: http://myservername/projectname.git/info/refs not found: did you run git update-server-info on the server?
तथा
> git clone http://myservername/git/projectname.git test/
Cloning into test...
error: The requested URL returned error: 502 while accessing http://myservername/git/projectname.git/info/refs
fatal: HTTP request failed
2:
location ~ /git(/.*) {
fastcgi_pass localhost:9001;
include /etc/nginx/fcgiwrap.conf;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT /home/git/repositories;
fastcgi_param PATH_INFO $1;
}
परिणाम:
> git clone http://myservername/projectname.git test/
Cloning into test...
fatal: http://myservername/projectname.git/info/refs not found: did you run git update-server-info on the server?
तथा
> git clone http://myservername/git/projectname.git test/
Cloning into test...
error: The requested URL returned error: 502 while accessing http://myservername/git/projectname.git/info/refs
fatal: HTTP request failed
3:
location ~ ^.*\.git/objects/([0-9a-f]+/[0-9a-f]+|pack/pack-[0-9a-f]+.(pack|idx))$ {
root /home/git/repositories/;
}
location ~ ^.*\.git/(HEAD|info/refs|objects/info/.*|git-(upload|receive)-pack)$ {
root /home/git/repositories;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
fastcgi_param PATH_INFO $uri;
fastcgi_param GIT_PROJECT_ROOT /home/git/repositories;
include /etc/nginx/fcgiwrap.conf;
}
परिणाम:
> git clone http://myservername/projectname.git test/
Cloning into test...
error: The requested URL returned error: 502 while accessing http://myservername/projectname.git/info/refs
fatal: HTTP request failed
तथा
> git clone http://myservername/git/projectname.git test/
Cloning into test...
error: The requested URL returned error: 502 while accessing http://myservername/git/projectname.git/info/refs
fatal: HTTP request failed
यह भी ध्यान दें कि उन किसी भी विन्यास के साथ, जब मैं एक प्रोजेक्ट नाम के साथ क्लोन करने का प्रयास करता हूं जो वास्तव में मौजूद नहीं है, तो मुझे 502 त्रुटि मिलती है।
क्या कोई ऐसा करने में पहले से ही सफल रहा है? मैं क्या गलत कर रहा हूं?
धन्यवाद।
अपडेट करें:
nginx त्रुटि लॉग फ़ाइल ने कहा:
2012/04/05 17:34:50 [crit] 21335#0: *50 connect() to unix:/var/run/fcgiwrap.socket failed (13: Permission denied) while connecting to upstream, client: 192.168.12.201, server: myservername, request: "GET /git/oct_editor.git/info/refs HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "myservername"
इसलिए मैंने /var/run/fcgiwrap.socket के लिए अनुमतियां बदल दी हैं, और अब मेरे पास है:
> git clone http://myservername/git/projectname.git test/
Cloning into test...
error: The requested URL returned error: 403 while accessing http://myservername/git/projectname.git/info/refs
fatal: HTTP request failed
अब मेरे पास एरर.लॉग फ़ाइल है:
2012/04/05 17:36:52 [error] 21335#0: *78 FastCGI sent in stderr: "Cannot chdir to script directory (/usr/lib/git-core/git/projectname.git/info)" while reading response header from upstream, client: 192.168.12.201, server: myservername, request: "GET /git/projectname.git/info/refs HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "myservername"
मैं जांच करता रहता हूं।
/usr/lib/git-core/git/projectname.git/info
?