Menyiapkan gitweb / apache2

10

Saya baru-baru ini mulai menyimpan kode, yang saya tulis di server lokal yang saya miliki di rumah.

Saya berharap untuk memulai contoh gitweb di rumah sehingga saya bisa melihat komitmen dan melacak kemajuan dengan rekan tim saya yang lain.

Saya sudah mencoba tutorial server online tanpa hasil. Saya ingin gitweb diaksesexample.com/git

Saya ingin kode saya ditempatkan di /code/git

Saya sangat menghargai bantuan apa pun! Cobalah untuk sejelas mungkin, karena saya jelas tidak tahu apa yang saya lakukan. Saya telah membaca banyak artikel.

Silahkan dan terima kasih.

myusuf3
sumber

Jawaban:

6

Bagian gitweb:

Anda harus menginstal paket gitweb dengan sudo apt-get install gitweb

Maka Anda harus mengedit file konfigurasi apache gitweb

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

ubah baris Alias /gitweb /usr/share/gitweb menjadi

Alias /git /usr/share/gitweb

buka /etc/gitweb.conffile:

Anda harus mengubah jalur $projectroot ".."ke $projectroot "/code/git"

dan mengubah jalur lain yang mengandung /gitwebuntuk /git misalnya

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

untuk

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

lalu muat ulang server web apache Anda dengan sudo /etc/init.d/apache2 horse-reload

Bagian GIT itu sendiri:

SAYA SANGAT merekomendasikan penggunaan gitosis ( http://scie.nti.st/2007/11/14/hosting-git-repository-the-easy-and-secure-way )

INGAT jika Anda menggunakan gitosis garis $projectrootdi /etc/gitweb.confharus

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

Anda dapat menemukan informasi terperinci tentang cara menyiapkan gitosis di http://scie.nti.st/2007/11/14/hosting-git-repository-the-easy-and-secure-way

menggambarkan pengaturan gitosis penuh terlalu lama untuk jawaban ini.

Jika Anda butuh bantuan lebih lanjut tentang gitosis, beri saya komentar

Untuk memperbaiki masalah izin apache, mungkin perlu dilakukan:

adduser www-data git
chgrp -R git /home/git/repositories
aatdark
sumber
apa perbedaan antara git dan gitosis.
myusuf3
gitosis adalah skrip untuk mengatur hosting git yang aman. (mengotentikasi pengguna dengan ssh dan lain-lain.) cukup maju dengan repositori git khusus yang berisi konfigurasi. Dalam konfigurasi ini, Anda dapat mengkonfigurasi repositori git lainnya
aatdark
itu menarik bagiku. bisakah Anda memodifikasi jawaban Anda untuk memasukkan pengaturan gitosis?
myusuf3
scie.nti.st/2007/11/14/… sangat terperinci (saya menggunakannya untuk diri saya sendiri). Jika Anda mengalami masalah pada satu langkah, tulis saya komentar
aatdark
0

Inilah yang saya lakukan untuk mengatur gitwebdi Ubuntu 14.04 - dengan SSL dan otentikasi pengguna sistem dengan pwauth. Secara default, gitwebgunakan a /etc/gitweb.conf, yang mengharapkan gitproyek masuk /var/lib/git.

Jadi saya mencoba meletakkan gitrepo saya di sini, jadi dalam contoh ini kita tidak perlu mengubah /etc/gitweb.conf- /var/lib/gitpenampilan saya seperti ini:

$ 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

Jadi, di samping repo Anda, Anda perlu symlink /usr/share/gitweb/gitweb.cgidi direktori ini juga ...

Kemudian, Anda dapat menggunakan yang berikut ini sebagai /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>

Dan akhirnya Anda bisa melakukannya:

# 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

Setelah ini, gitwebharus tersedia di https://localhost/gitweb/(misalnya, https://localhost/gitweb/?p=testrepo.git;a=summary); dan Anda harus dapat mengkloning (dalam hal sertifikat SSL yang ditandatangani sendiri) dengan:

GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git
sdbbs
sumber