Konfigurasikan Server Git dengan HTTP di Ubuntu

Configure Git Server With Http Ubuntu



Jika Anda ingin menyiapkan Git HTTP Server untuk bekerja dengan repositori Git secara pribadi, maka artikel ini cocok untuk Anda. Pada artikel ini, saya akan menunjukkan cara mengkonfigurasi server HTTP Git Smart di Ubuntu dengan server HTTP Apache. Jadi, mari kita mulai.

Paket Git dan Apache tersedia di repositori paket resmi Ubuntu. Jadi, Anda dapat dengan mudah menginstalnya dengan manajer paket APT.







Pertama, perbarui cache repositori paket APT dengan perintah berikut:



$sudopembaruan yang tepat



Cache repositori paket APT harus diperbarui.





Sekarang, instal Git dan Apache dengan perintah berikut:



$sudotepatInstall Pergilahapache2 apache2-utils

Sekarang, tekan DAN lalu tekan untuk mengkonfirmasi instalasi.

Git dan Apache harus diinstal.

Konfigurasi Apache HTTP Server untuk Git:

Sekarang, aktifkan Apache mod_env , mod_cgi , mod_alias dan mod_rewrite modul dengan perintah berikut:

$sudoa2enmodenvcgialiasmenulis kembali

Modul Apache yang diperlukan harus diaktifkan.

Sekarang, buat direktori baru /var/www/git untuk menyimpan semua repositori Git dengan perintah berikut:

$sudo mkdir /di mana/www/Pergilah

Sekarang, buat konfigurasi situs Apache baru /etc/apache2/sites-available/git.conf untuk Git dengan perintah berikut:

$sudo nano /dll/apache2/situs-tersedia/git.conf

Sekarang, ketik baris berikut di file konfigurasi:

<VirtualHost*:80>
Webmaster ServerAdmin@localhost

SetelEnv GIT_PROJECT_ROOT<kuat> /di mana/www/Pergilahkuat>
AturEnv GIT_HTTP_EXPORT_ALL
SkripAlias/Pergilah/ /usr/lib/git-inti/git-http-backend/

Alias/Pergilah /di mana/www/Pergilah

<Direktori/usr/lib/git-inti>
Opsi +ExecCGI-MultiViews+SymLinksIfOwnerMatch
AllowOverride Tidak Ada
Membutuhkan semua diberikan
Direktori>

Akar Dokumen/di mana/www/html

<Direktori/di mana/www>
Pilihan Indeks FollowSymLinks MultiViews
AllowOverride Tidak Ada
Membutuhkan semua diberikan
Direktori>


Catatan eror$ {APACHE_LOG_DIR}/catatan eror
Peringatan Level Log
CustomLog$ {APACHE_LOG_DIR}/access.log digabungkan
VirtualHost>

File konfigurasi akhir terlihat sebagai berikut. Sekarang, simpan file konfigurasi dengan menekan + x diikuti oleh DAN dan .

Sekarang, nonaktifkan konfigurasi situs Apache default dengan perintah berikut:

$sudoa2dissite 000-default.conf

Konfigurasi situs default harus dinonaktifkan.

Sekarang, aktifkan konfigurasi situs Git dengan perintah berikut:

$sudoa2ensite git.conf

Konfigurasi situs Git harus diaktifkan.

Sekarang, restart server Apache HTTP dengan perintah berikut:

$sudosystemctl restart Apache2

Untuk mem-bootstrap repositori Git baru yang dapat diakses melalui server HTTP Apache, Anda harus menjalankan beberapa perintah. Anda tidak ingin melakukan hal yang sama berulang-ulang hanya untuk membuat repositori Git baru. Jadi, saya memutuskan untuk menulis skrip shell untuk tujuan itu.

Pertama, buat skrip shell baru /usr/local/bin/git-create-repo.sh dengan perintah berikut:

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

Sekarang, ketikkan baris kode berikut di skrip shell.

#!/bin/bash

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

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

git init --hanya &> /dev/batal
menyentuhgit-daemon-ekspor-ok
cpkait/kait pasca-pembaruan. contoh/pasca-pembaruan
konfigurasi githttp.receivepackbenar
git update-server-info
chown -Rfwww-data: www-data'${GIT_DIR}/${REPO_NAME}.Pergilah'
dibuang 'Git repositori'${REPO_NAME}' dibuat di${GIT_DIR}/${REPO_NAME}.Pergilah'

Setelah Anda mengetikkan baris ini, skrip shell akan terlihat seperti berikut. Sekarang, simpan file dengan menekan + x diikuti oleh DAN dan .

Sekarang, tambahkan izin eksekusi ke skrip shell dengan perintah berikut:

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

Sekarang, buat repositori Git baru tes di root proyek Git /var/www/git menggunakan git-create-repo.sh skrip shell sebagai berikut:

$sudogit-create-repo.shtes

Repositori Git tes harus dibuat.

Untuk mengakses repositori Git, Anda memerlukan alamat IP server HTTP Git.

$aku pke

Seperti yang Anda lihat, alamat IP dalam kasus saya adalah 192.168.21.208 . Ini akan berbeda untuk Anda. Ganti dengan milikmu mulai sekarang.

Sekarang, Anda dapat mengkloning tes Repositori Git sebagai berikut:

$git clonehttp://192.168.21.208/Pergilah/test.go

Repositori Git tes harus dikloning.

Sekarang, mari tambahkan komit baru ke tes Repositori Git.

$CDtes/
$dibuang 'Halo Dunia' >Halo
$git tambahkan.
$git komit -M 'komit awal'

Sekarang, unggah perubahan ke tes Repositori Git di server sebagai berikut:

$git pushasal

Seperti yang Anda lihat, perubahan diunggah dengan baik.

Mengonfigurasi Otentikasi Pengguna:

Di bagian ini, saya akan menunjukkan kepada Anda cara mengonfigurasi otentikasi pengguna pada repositori Git di server.

Pertama, edit git.conf file konfigurasi situs sebagai berikut:

$sudo nano /dll/apache2/situs-tersedia/git.conf

Sekarang, tambahkan bagian berikut di file konfigurasi.

<Pertandingan Lokasi/Pergilah/.*.Pergilah>
AuthType Dasar
NamaOtentikasi'Verifikasi Git'
FilePengguna Auth/dll/apache2/git.passwd
Memerlukan pengguna yang valid
Pertandingan Lokasi>

Di Sini, /etc/apache2/git.passwd adalah file database pengguna.

File konfigurasi akhir akan terlihat sebagai berikut. Sekarang, simpan file dengan menekan + x diikuti oleh DAN dan .

Sekarang, buat file database pengguna baru /etc/apache2/git.passwd dan tambahkan pengguna baru (katakanlah shovon ) ke file database sebagai berikut:

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

Sekarang, ketikkan kata sandi baru untuk pengguna baru dan tekan .

Ketik ulang kata sandi yang sama dan tekan .

Pasangan kata sandi pengguna harus ditambahkan ke database.

Sekarang, restart server Apache HTTP dengan perintah berikut:

$sudosystemctl restart Apache2

Sekarang, jika Anda mencoba mengkloning tes repositori lagi, Anda akan diminta untuk mengotentikasi seperti yang Anda lihat pada gambar di bawah.

Setelah Anda mengautentikasi menggunakan nama pengguna dan kata sandi, Anda akan dapat mengakses repositori Git.

Bahkan ketika Anda mencoba untuk mendorong atau menarik dari repositori Git, Anda juga akan dimintai nama pengguna dan kata sandi.

Setelah Anda mengautentikasi, Push/pull akan berfungsi.

Anda juga dapat mengatur database pengguna yang berbeda untuk repositori Git yang berbeda. Ini mungkin berguna untuk proyek di mana banyak orang bekerja bersama di repositori Git yang sama.

Untuk mengatur autentikasi repositori Git, pertama, edit file git.conf file konfigurasi situs sebagai berikut:

$sudo nano /dll/apache2/situs-tersedia/git.conf

Sekarang, tambahkan baris berikut di file konfigurasi.

<Lokasi/Pergilah/test.go>
AuthType Dasar
NamaOtentikasi'Verifikasi Git'
FilePengguna Auth/dll/apache2/git.test.passwd
Memerlukan pengguna yang valid
Lokasi>

<Lokasi/Pergilah/tes2.git>
AuthType Dasar
NamaOtentikasi'Verifikasi Git'
FilePengguna Auth/dll/apache2/git.test2.passwd
Memerlukan pengguna yang valid
Lokasi>

Untuk setiap repositori Git tes dan tes2 , ke bagian didefinisikan. File database pengguna yang berbeda digunakan untuk setiap repositori Git.

File konfigurasi akhir akan terlihat sebagai berikut. Sekarang, simpan file konfigurasi dengan menekan + x diikuti oleh DAN dan .

Sekarang, Anda dapat membuat database pengguna yang diperlukan sebagai berikut:

$sudohtpasswd-C /dll/apache2/git.test.passwd USERNAME
$sudohtpasswd-C /dll/apache2/git.test2.passwd USERNAME

Setelah selesai, restart server Apache HTTP dengan perintah berikut:

$sudosystemctl restart Apache2

Sekarang, setiap repositori Git harus memiliki kumpulan pengguna sendiri yang dapat mengaksesnya.

Jadi, begitulah cara Anda mengkonfigurasi Git Server dengan Apache HTTP Server di Ubuntu. Terima kasih telah membaca artikel ini.