গিটোলাইট এবং এনজিনেক্স সহ এইচটিটিপি-তে গিট


10

আমি এমন একটি সার্ভার সেটআপ করার চেষ্টা করছি যেখানে আমার গিট রেপো এইচটিটিপি (এস) এর মাধ্যমে অ্যাক্সেসযোগ্য হবে।

আমি গিটোলাইট এবং এনগিনেক্স ব্যবহার করছি (এবং ওয়েব ইন্টারফেসের জন্য গিটল্যাব তবে আমি সন্দেহ করি যে এটি কোনও তফাত করে)।

আমি পুরো বিকেলে অনুসন্ধান করেছি এবং আমার মনে হয় আমি আটকে আছি।

আমার মনে হয়েছে আমি বুঝতে পেরেছি যে জিটোলাইটের সাথে কাজ করার জন্য এনজিনেক্সের fcgiwrap প্রয়োজন, তাই আমি বেশ কয়েকটি কনফিগারেশন চেষ্টা করেছি, কিন্তু তাদের কোনওটিই কাজ করে না।

আমার সংগ্রহস্থলগুলি / হোম / গিট / রিপোজিটরিগুলিতে রয়েছে।

আমি চেষ্টা করেছি এমন তিনটি এনগিনেক্স কনফিগারেশন এখানে।

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.sket এর জন্য অনুমতিগুলি পরিবর্তন করেছি এবং এখন আমার কাছে রয়েছে:

> 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?
জান মারেক

n ln -s / home / git / usr / lib / git-core / git} বা {{root / home সেট করুন; তবে দ্বিতীয়টি সুরক্ষা সমস্যা হতে পারে
চমত্কারভাবে

উত্তর:


1

এখানে আমি আমার অ্যাপাচি কনফিগারেশনে সেট করেছি (আমি জানি: এনজিনেক্স নয়, তবে এখনও আপনাকে সহায়তা করতে পারে):

SetEnv GIT_PROJECT_ROOT @H@/repositories
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv GITOLITE_HTTP_HOME @H@
ScriptAlias /hgit/ @H@/gitolite/bin/gl-auth-command/
SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"

( @H@যেখানে .gitolite.rcআমার ক্ষেত্রে সংরক্ষণাগারগুলি সংরক্ষণ করা হয়েছে সেখানে)

আমি আপনার কনফিগারেশনে দেখি GITOLITE_HTTP_HOMEএবং GIT_HTTP_BACKENDসংজ্ঞায়িত করি না । এখানে সম্পূর্ণ কনফিগারেশন
দেখুন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.