Gitweb / apache2 सेट करना


10

मैंने हाल ही में कोड जमा करना शुरू किया है, जिसे मैं घर पर एक स्थानीय सर्वर पर लिखता हूं।

मैं घर पर एक gitweb उदाहरण शुरू करने की उम्मीद कर रहा था ताकि मैं अपने अन्य टीम साथियों के साथ कमिट और ट्रैक प्रगति देख सकूं।

मैंने बिना किसी भाग्य के सर्वर ट्यूटोरियल ऑनलाइन की कोशिश की है। मैं चाहूंगा कि gitweb द्वारा पहुँचा जाएexample.com/git

मैं चाहूंगा कि मेरा कोड अंदर हो /code/git

किसी भी सहायता के लिए धन्यवाद! कृपया संभव के रूप में स्पष्ट होने की कोशिश करें, क्योंकि मैं स्पष्ट रूप से नहीं जानता कि मैं क्या कर रहा हूं। मैंने बहुत सारे लेख पढ़े हैं।

कृपया और धन्यवाद।

जवाबों:


6

Gitweb हिस्सा:

आपको पैकेज gitweb के साथ स्थापित करना होगा sudo apt-get install gitweb

फिर आपको Apache gitweb config फाइल को एडिट करना होगा

$EDITOR /etc/apache2/conf.d/gitweb

Alias /gitweb /usr/share/gitweb करने के लिए लाइन बदलें

Alias /git /usr/share/gitweb

/etc/gitweb.confफ़ाइल खोलें :

आपको लाइन $projectroot ".."को बदलना होगा $projectroot "/code/git"

और युक्त किसी अन्य लाइन को बदलने /gitwebके लिए /git उदाहरण के लिए

$stylesheet = "/gitweb/gitweb.css";

सेवा

$stylesheet = "/git/gitweb.css";

फिर आप अपाचे वेबसर्वर के साथ पुनः लोड करें sudo /etc/init.d/apache2 horse-reload

GIT हिस्सा ही:

मैं गंभीरता से गिटोसिस ( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way ) के उपयोग की सलाह देता हूं

याद करता है, तो आप उपयोग gitosis लाइन $projectrootमें /etc/gitweb.confहो गया है

$projectroot = "/home/git/repositories/";

आप http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way पर howto setup gitosis पर विस्तृत जानकारी प्राप्त कर सकते हैं

पूर्ण gitosis सेटअप का वर्णन इस उत्तर के लिए बहुत लंबा है।

अगर आपको gitosis पर अधिक सहायता की आवश्यकता है तो मुझे एक टिप्पणी दें

अपाचे अनुमति समस्याओं को ठीक करने के लिए, ऐसा करना आवश्यक हो सकता है:

adduser www-data git
chgrp -R git /home/git/repositories

git और gitosis के बीच अंतर क्या है।
myusuf3

gitosis, सुरक्षित git होस्टिंग सेटअप करने के लिए एक स्क्रिप्ट है। (ssh और सामान के साथ उपयोगकर्ताओं को प्रमाणित करें।) एक विशेष गिट रिपॉजिटरी के साथ इसके सुंदर स्ट्रिगेट को आगे बढ़ाता है जिसमें एक विन्यास होता है। इस विन्यास में आप अन्य git रिपॉजिटरी
aatdark

यह मेरे लिए दिलचस्प है। क्या आप गिटोसिस सेटअप को शामिल करने के लिए अपना जवाब संशोधित कर सकते हैं?
myusuf3

scie.nti.st/2007/11/14/… बहुत विस्तृत है (मैंने इसे अपने लिए उपयोग किया है)। यदि आप एक कदम पर एक समस्या का अनुभव करते हैं, तो मुझे एक टिप्पणी
लिखो

0

यहाँ मैंने gitwebUbuntu 14.04 पर सेटअप करने के लिए क्या किया - SSL और सिस्टम उपयोगकर्ताओं के प्रमाणीकरण के साथ pwauth। डिफ़ॉल्ट रूप से, gitweba का उपयोग करता है /etc/gitweb.conf, जो gitपरियोजनाओं की अपेक्षा करता है /var/lib/git

इसलिए मैंने अपने gitरिपोज को यहां रखने की कोशिश की , इसलिए इस उदाहरण में हमें बदलाव नहीं करना है /etc/gitweb.conf- मेरा रूप /var/lib/gitइस तरह है:

$ ls -la /var/lib/git/
total 12
drwxrwxrwx  3 root          root          4096 Apr  9 16:01 .
drwxr-xr-x 75 root          root          4096 Apr  7 17:31 ..
lrwxrwxrwx  1 myuser        myuser        28 Apr  9 16:01 gitweb.cgi -> /usr/share/gitweb/gitweb.cgi
drwxrwsr-x  7 myuser        www-data      4096 Apr 10 17:50 testrepo.git

तो, अपने रेपो के बगल में, आपको /usr/share/gitweb/gitweb.cgiइस निर्देशिका में भी सहानुभूति की आवश्यकता होगी ...

फिर, आप निम्न का उपयोग कर सकते हैं /etc/apache2/sites-available/gitw-ssl.conf:

<IfModule mod_ssl.c>
  <VirtualHost _default_:443>
    ServerAdmin webmaster@localhost
    ServerName localhost
    HeaderName HEADER
    DocumentRoot /var/www/html

    LogLevel info
    ErrorLog ${APACHE_LOG_DIR}/error-gw.log
    CustomLog ${APACHE_LOG_DIR}/access-gw.log combined

    SSLEngine on
    SSLCertificateFile  /etc/apache2/ssl/my.crt
    SSLCertificateKeyFile /etc/apache2/ssl/my.key
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
      SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
      SSLOptions +StdEnvVars
    </Directory>

    <IfModule mod_authnz_external.c>
      # old style:
      AddExternalAuth pwauth /usr/sbin/pwauth
      SetExternalAuthMethod pwauth pipe
      # new style:
      #DefineExternalAuth pwauth pipe /usr/sbin/pwauth
    </IfModule>

    # as more specific, /gitweb/static should go first
    Alias /gitweb/static /usr/share/gitweb/static
    Alias /gitweb /var/lib/git
    # gitweb.cgi alias is no dice - symlink is needed:
    Alias gitweb.cgi /usr/share/gitweb/gitweb.cgi
    <Directory /var/lib/git>
      Options +FollowSymlinks +ExecCGI
      SSLRequireSSL
      AuthType basic
      AuthName "Private git repository"
      AuthBasicProvider external
      AuthExternal pwauth
      Require valid-user
      AddHandler cgi-script .cgi
      DirectoryIndex gitweb.cgi
    </Directory>

    ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
    <Directory "/usr/lib/git-core/">
      SetEnv GIT_PROJECT_ROOT /var/lib/git
      SetEnv GIT_HTTP_EXPORT_ALL
      Options +ExecCGI
      SSLRequireSSL
      AuthType basic
      AuthName "Private git repository"
      AuthBasicProvider external
      AuthExternal pwauth
      Require valid-user
    </Directory>

  </VirtualHost>
</IfModule>

और अंत में आप कर सकते हैं:

# not sure if also `fcgid auth_digest` are needed:
sudo a2enmod ssl cgi alias env rewrite
sudo a2ensite gitw-ssl.conf
# if not `reload`, use `restart`:
sudo service apache2 reload

इसके बाद, (उदाहरण के लिए ) gitwebपर उपलब्ध होना चाहिए ; और आपको क्लोन करना चाहिए (स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र के मामले में):https://localhost/gitweb/https://localhost/gitweb/?p=testrepo.git;a=summary

GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.