Git Sunucusunu Ubuntu'da HTTP ile Yapılandırın

Configure Git Server With Http Ubuntu



Git depolarıyla özel olarak çalışmak için bir Git HTTP Sunucusu kurmak istiyorsanız, bu makale tam size göre. Bu yazıda size Apache HTTP sunucusu ile Ubuntu üzerinde Git Smart HTTP sunucusunu nasıl yapılandıracağınızı göstereceğim. Öyleyse başlayalım.

Git ve Apache paketleri, Ubuntu'nun resmi paket deposunda mevcuttur. Böylece APT paket yöneticisi ile kolayca kurabilirsiniz.







İlk olarak, APT paketi deposu önbelleğini aşağıdaki komutla güncelleyin:



$sudouygun güncelleme



APT paketi deposu önbelleği güncellenmelidir.





Şimdi Git ve Apache'yi aşağıdaki komutla kurun:



$sudouygunYüklemek gitapache2 apache2-utils

Şimdi basın VE ve ardından basın Kurulumu onaylamak için

Git ve Apache kurulmalıdır.

Git için Apache HTTP Sunucusunu Yapılandırma:

Şimdi Apache'yi etkinleştirin mod_env , mod_cgi , mod_alias ve mod_rewrite aşağıdaki komutla modüller:

$sudoa2enmodortamcgitakma adyeniden yazmak

Gerekli Apache modülleri etkinleştirilmelidir.

Şimdi yeni bir dizin oluşturun /var/www/git tüm Git depolarını aşağıdaki komutla tutmak için:

$sudo mkdir /nerede/www/git

Şimdi yeni bir Apache site yapılandırması oluşturun /etc/apache2/sites-available/git.conf Git için aşağıdaki komutla:

$sudo nano /vesaire/apache2/siteler-mevcut/git.conf

Şimdi, yapılandırma dosyasına aşağıdaki satırları yazın:

<Sanal Ana Bilgisayar*:80>
SunucuYöneticisi web yöneticisi@yerel ana bilgisayar

SetEnv GIT_PROJECT_ROOT<kuvvetli> /nerede/www/gitkuvvetli>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/git/ /usr/kütüphane/git-çekirdek/git-http-arka uç/

takma ad/git /nerede/www/git

<dizin/usr/kütüphane/git-çekirdek>
Seçenekler +ExecCGI-Çoklu Görünümler+SymLinksIfOwnerMatch
AllowOverride Yok
Tüm izinleri iste
dizin>

Doküman kaynağı/nerede/www/html

<dizin/nerede/www>
Seçenekler Dizinler FollowSymLinks MultiViews
AllowOverride Yok
Tüm izinleri iste
dizin>


Hata Günlüğü$ {APACHE_LOG_DIR}/hata.log
LogLevel uyar
Özel Günlük$ {APACHE_LOG_DIR}/access.log birleştirildi
Sanal Ana Bilgisayar>

Son yapılandırma dosyası aşağıdaki gibi görünür. Şimdi, düğmesine basarak yapılandırma dosyasını kaydedin. + x bunu takiben VE ve .

Şimdi, aşağıdaki komutla varsayılan Apache site yapılandırmasını devre dışı bırakın:

$sudoa2dissite 000-default.conf

Varsayılan site yapılandırması devre dışı bırakılmalıdır.

Şimdi Git site yapılandırmasını aşağıdaki komutla etkinleştirin:

$sudoa2ensite git.conf

Git sitesi yapılandırması etkinleştirilmelidir.

Şimdi, aşağıdaki komutla Apache HTTP sunucusunu yeniden başlatın:

$sudosystemctl apache2'yi yeniden başlat

Apache HTTP sunucusu üzerinden erişilebilen yeni bir Git deposunu önyüklemek için birkaç komut çalıştırmanız gerekecek. Yeni bir Git deposu oluşturmak için aynı şeyi tekrar tekrar yapmak istemezsiniz. Bu amaçla bir kabuk betiği yazmaya karar verdim.

İlk önce yeni bir kabuk betiği oluşturun /usr/local/bin/git-create-repo.sh aşağıdaki komutla:

$sudo nano /usr/yerel/NS/git-create-repo.sh

Şimdi, kabuk betiğine aşağıdaki kod satırlarını yazın.

#!/bin/bash

GIT_DIR='/var/www/git'
REPO_NAME=1 dolar

mkdir -P '${GIT_DIR}/${REPO_NAME}.git'
CD '${GIT_DIR}/${REPO_NAME}.git'

git init --sadece &> /dev/boş
dokunmagit-daemon-export-tamam
cpkancalar/güncelleme sonrası.örnek kancaları/güncelleme sonrası
git yapılandırmahttp.alma paketiNS
git güncelleme-sunucu bilgisi
yemek -Rfwww-veri: www-veri'${GIT_DIR}/${REPO_NAME}.git'
dışarı attı 'Git deposu'${REPO_NAME}' içinde yaratıldı${GIT_DIR}/${REPO_NAME}.git'

Bu satırları yazdıktan sonra kabuk betiği aşağıdaki gibi görünmelidir. Şimdi, tuşuna basarak dosyayı kaydedin + x bunu takiben VE ve .

Şimdi, aşağıdaki komutla kabuk komut dosyasına yürütme izni ekleyin:

$sudo chmod+ x/usr/yerel/NS/git-create-repo.sh

Şimdi yeni bir Git deposu oluşturun Ölçek Git proje kökünde /var/www/git kullanmak git-create-repo.sh Shell betiği aşağıdaki gibi:

$sudogit-create-repo.shÖlçek

Git deposu Ölçek oluşturulmalıdır.

Git deposuna erişmek için Git HTTP sunucusunun IP adresine ihtiyacınız vardır.

$ipile

Gördüğünüz gibi, benim durumumdaki IP adresi 192.168.1.208 . Senin için farklı olacak. Şu andan itibaren sizinkiyle değiştirin.

Şimdi, klonlayabilirsiniz Ölçek Git deposu aşağıdaki gibi:

$git clonehttp://192.168.1.208/git/test.git

Git deposu Ölçek klonlanmalıdır.

Şimdi, yeni bir taahhüt ekleyelim Ölçek Git deposu.

$CDÖlçek/
$dışarı attı 'Selam Dünya' >Merhaba
$git ekle.
$git taahhüt -m 'ilk taahhüt'

Şimdi, değişiklikleri şuraya yükleyin: Ölçek Sunucudaki Git deposu aşağıdaki gibidir:

$git itmeMenşei

Gördüğünüz gibi, değişiklikler gayet iyi yüklendi.

Kullanıcı Kimlik Doğrulamasını Yapılandırma:

Bu bölümde, sunucudaki Git depolarında kullanıcı kimlik doğrulamasını nasıl yapılandıracağınızı göstereceğim.

İlk olarak, düzenleyin git.conf site yapılandırma dosyası aşağıdaki gibidir:

$sudo nano /vesaire/apache2/siteler-mevcut/git.conf

Şimdi, yapılandırma dosyasına aşağıdaki bölümü ekleyin.

<KonumMaç/git/.*.git>
AuthType Temel
Yetki Adı'Git Doğrulaması'
Yetki Kullanıcı Dosyası/vesaire/apache2/git.passwd
Geçerli kullanıcı gerektir
KonumMaç>

Buraya, /etc/apache2/git.passwd kullanıcı veritabanı dosyasıdır.

Son yapılandırma dosyası aşağıdaki gibi görünmelidir. Şimdi, tuşuna basarak dosyayı kaydedin + x bunu takiben VE ve .

Şimdi yeni bir kullanıcı veritabanı dosyası oluşturun /etc/apache2/git.passwd ve yeni bir kullanıcı ekleyin (diyelim ki Şovon ) aşağıdaki gibi veritabanı dosyasına:

$sudohtpasswd-C /vesaire/apache2/git.passwd shovon

Şimdi, yeni kullanıcı için yeni bir şifre girin ve tuşuna basın. .

Aynı şifreyi tekrar yazın ve tuşuna basın. .

Kullanıcı-şifre çifti veritabanına eklenmelidir.

Şimdi, aşağıdaki komutla Apache HTTP sunucusunu yeniden başlatın:

$sudosystemctl apache2'yi yeniden başlat

Şimdi, klonlamaya çalışırsanız Ölçek repository'yi tekrar çalıştırdığınızda, aşağıdaki ekran görüntüsünde görebileceğiniz gibi kimlik doğrulamanız istenecektir.

Kullanıcı adı ve şifreyi kullanarak kimlik doğrulaması yaptıktan sonra Git deposuna erişebileceksiniz.

Git deposundan itmeye veya çekmeye çalıştığınızda bile, kullanıcı adı ve şifre de istenecektir.

Kimliği doğruladığınızda, Push/pull çalışacaktır.

Farklı Git depoları için farklı kullanıcı veritabanı da ayarlayabilirsiniz. Bu, birçok insanın aynı Git deposunda birlikte çalıştığı projeler için faydalı olabilir.

Git deposu bazında kimlik doğrulamasını ayarlamak için önce git.conf site yapılandırma dosyası aşağıdaki gibidir:

$sudo nano /vesaire/apache2/siteler-mevcut/git.conf

Şimdi, yapılandırma dosyasına aşağıdaki satırları ekleyin.

<Konum/git/test.git>
AuthType Temel
Yetki Adı'Git Doğrulaması'
Yetki Kullanıcı Dosyası/vesaire/apache2/git.test.passwd
Geçerli kullanıcı gerektir
Konum>

<Konum/git/test2.git>
AuthType Temel
Yetki Adı'Git Doğrulaması'
Yetki Kullanıcı Dosyası/vesaire/apache2/git.test2.passwd
Geçerli kullanıcı gerektir
Konum>

Her Git deposu için Ölçek ve test2 , ile bölüm tanımlanmıştır. Her Git deposu için farklı bir kullanıcı veritabanı dosyası kullanılır.

Son yapılandırma dosyası aşağıdaki gibi görünmelidir. Şimdi, düğmesine basarak yapılandırma dosyasını kaydedin. + x bunu takiben VE ve .

Artık gerekli kullanıcı veritabanlarını aşağıdaki gibi oluşturabilirsiniz:

$sudohtpasswd-C /vesaire/apache2/git.test.passwd KULLANICI ADI
$sudohtpasswd-C /vesaire/apache2/git.test2.passwd KULLANICI ADI

İşiniz bittiğinde, aşağıdaki komutla Apache HTTP sunucusunu yeniden başlatın:

$sudosystemctl apache2'yi yeniden başlat

Artık her Git deposunun kendisine erişebilecek kendi kullanıcı kümesi olmalıdır.

Böylece Git Sunucusunu Ubuntu'da Apache HTTP Sunucusu ile yapılandırırsınız. Bu makaleyi okuduğunuz için teşekkürler.