Git

Konfigurasikan Server Git dengan HTTP di Ubuntu

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

Menginstal Git dan Apache HTTP Server:

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:

$ sudo apt update

Cache repositori paket APT harus diperbarui.

Sekarang, instal Git dan Apache dengan perintah berikut:

$ sudo apt install git apache2 apache2-utils

Sekarang, tekan kamu 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:

$ sudo a2enmod env cgi alias menulis ulang

Modul Apache yang diperlukan harus diaktifkan.

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

$ sudo mkdir /var/www/git

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

$ sudo nano /etc/Apache2/sites-available/git.konf

Sekarang, ketik baris berikut di file konfigurasi:


ServerAdmin webmaster@localhost
 
SetelEnv GIT_PROJECT_ROOT /var/www/git
AturEnv GIT_HTTP_EXPORT_ALL
ScriptAlias ​​/git/ /usr/lib/git-core/git-http-backend/
 
Alias ​​/git /var/www/git
 

Opsi +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AllowOverride Tidak Ada
Membutuhkan semua diberikan

 
DocumentRoot /var/www/html
 

Pilihan Indeks FollowSymLinks MultiViews
AllowOverride Tidak Ada
Membutuhkan semua diberikan

 
 
ErrorLog $APACHE_LOG_DIR/error.catatan
Peringatan Level Log
CustomLog $APACHE_LOG_DIR/akses.log gabungan

File konfigurasi akhir terlihat sebagai berikut:. Sekarang, simpan file konfigurasi dengan menekan + X diikuti oleh kamu dan .

Sekarang, nonaktifkan konfigurasi situs Apache default dengan perintah berikut:

$ sudo a2dissite 000-default.konf

Konfigurasi situs default harus dinonaktifkan.

Sekarang, aktifkan konfigurasi situs Git dengan perintah berikut:

$ sudo a2ensite git.konf

Konfigurasi situs Git harus diaktifkan.

Sekarang, restart server Apache HTTP dengan perintah berikut:

$ sudo systemctl 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/local/bin/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.git"
cd "$GIT_DIR/$REPO_NAME.git"
 
git init --bare &> /dev/null
sentuh git-daemon-export-ok
kait cp/pasca-pembaruan.contoh kait/pasca-pembaruan
git konfigurasi http.paket terima benar
git update-server-info
chown -Rf www-data:www-data "$GIT_DIR/$REPO_NAME.git"
echo "Repositori Git '$REPO_NAME' dibuat di $GIT_DIR/$REPO_NAME.git"

Setelah Anda mengetikkan baris-baris ini, skrip shell akan terlihat sebagai berikut:. Sekarang, simpan file dengan menekan + X diikuti oleh kamu dan .

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

$ sudo chmod +x /usr/local/bin/git-create-repo.SH

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

$ sudo git-create-repo.tes sh

Repositori Git uji harus diciptakan.

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

$ ip a

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

Sekarang, Anda dapat mengkloning uji Repositori Git sebagai berikut:

$ git klon http://192.168.21.208/git/tes.git

Repositori Git uji harus dikloning.

Sekarang, mari tambahkan komit baru ke uji Repositori Git.

$cd tes/
$ echo "Halo Dunia" > halo
$ git tambahkan .
$ git commit -m 'komit awal'

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

$ git push asal

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.konf file konfigurasi situs sebagai berikut:

$ sudo nano /etc/Apache2/sites-available/git.konf

Sekarang, tambahkan bagian berikut di file konfigurasi.


AuthType Dasar
AuthName "Verifikasi Git"
AuthUserFile /etc/Apache2/git.paswd
Memerlukan pengguna yang valid

Sini, /etc/apache2/git.paswd adalah file basis data pengguna.

File konfigurasi akhir akan terlihat sebagai berikut:. Sekarang, simpan file dengan menekan + X diikuti oleh kamu dan .

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

$ sudo htpasswd -c /etc/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:

$ sudo systemctl restart apache2

Sekarang, jika Anda mencoba mengkloning uji repositori lagi, Anda akan diminta untuk mengautentikasi seperti yang Anda lihat pada tangkapan layar di bawah ini.

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 basis data 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.konf file konfigurasi situs sebagai berikut:

$ sudo nano /etc/Apache2/sites-available/git.konf

Sekarang, tambahkan baris berikut di file konfigurasi.


AuthType Dasar
AuthName "Verifikasi Git"
AuthUserFile /etc/Apache2/git.uji.paswd
Memerlukan pengguna yang valid

 

AuthType Dasar
AuthName "Verifikasi Git"
AuthUserFile /etc/Apache2/git.tes2.paswd
Memerlukan pengguna yang valid

Untuk setiap repositori Git uji dan tes2, Sebuah bagian ditentukan. 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 kamu dan .

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

$ sudo htpasswd -c /etc/apache2/git.uji.passwd USERNAME
$ sudo htpasswd -c /etc/apache2/git.tes2.passwd USERNAME

Setelah selesai, restart server Apache HTTP dengan perintah berikut:

$ sudo systemctl 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.

Cara merekam dan streaming sesi permainan Anda di Linux
Dulu, bermain game hanya dianggap sebagai hobi, namun seiring berjalannya waktu, industri game mengalami pertumbuhan yang sangat pesat baik dari segi ...
Game Terbaik untuk Dimainkan dengan Pelacakan Tangan
Oculus Quest baru-baru ini memperkenalkan ide hebat pelacakan tangan tanpa pengontrol. Dengan jumlah permainan dan aktivitas yang terus meningkat yang...
Cara Menampilkan Overlay OSD di Aplikasi dan Game Linux Layar Penuh
Memainkan game layar penuh atau menggunakan aplikasi dalam mode layar penuh bebas gangguan dapat memutus Anda dari informasi sistem yang relevan yang ...