GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal HTTP Git Server dengan Nginx di Ubuntu 20.04

Git adalah sistem versi sumber terbuka dan gratis yang dikembangkan oleh Linus Torvalds. Ini digunakan oleh jutaan pengembang di seluruh dunia. GitHub juga menawarkan layanan hosting kode gratis. Namun, layanan gratis tidak mengizinkan hosting pribadi kode. Dalam hal ini, Anda dapat meng-host server hosting kode Anda sendiri dengan server HTTP Git. Ini akan memberi Anda kendali penuh pada server.

Dalam tutorial ini, kami akan menunjukkan cara menginstal dan mengkonfigurasi server HTTP Git dengan Nginx di Ubuntu 20.04.

Prasyarat

  • Server yang menjalankan Ubuntu 20.04.
  • Nama domain yang valid ditunjukkan dengan IP server Anda.
  • Sandi root dikonfigurasi untuk server.

Memulai

Sebelum memulai, disarankan untuk memperbarui paket server Anda ke versi terbaru. Anda dapat memperbaruinya dengan perintah berikut:

apt-get update -y

Setelah semua paket diperbarui, Anda dapat melanjutkan ke langkah berikutnya.

Instal Nginx dan Git

Selanjutnya, Anda perlu menginstal server web Nginx, Git, dan paket lain yang diperlukan ke sistem Anda. Anda dapat menginstalnya dengan perintah berikut:

apt-get install nginx git fcgiwrap apache2-utils unzip -y

Setelah semua paket terinstal, Anda dapat melanjutkan ke langkah berikutnya.

Buat Repositori Git

Selanjutnya, Anda perlu membuat repositori Git di dalam direktori root web Nginx. Pertama, buat direktori bernama git dengan perintah berikut:

mkdir /var/www/html/git

Selanjutnya, ubah direktori menjadi git dan buat direktori baru untuk repositori Git:

cd /var/www/html/git
mkdir gituser.git

Selanjutnya, Ubah ke direktori baru ini dan inisialisasi repositori Git dengan perintah:

git --bare init

Selanjutnya, update Git Server dengan perintah:

git update-server-info

Selanjutnya, atur kepemilikan dan izin pada direktori git dengan perintah berikut:

chown -R www-data:www-data /var/www/html/git
chmod -R 755 /var/www/html/git

Selanjutnya buat sebuah gituser baru untuk otentikasi dengan perintah berikut;

htpasswd -c /var/www/html/git/htpasswd gituser

Anda akan diminta untuk mengatur kata sandi seperti yang ditunjukkan di bawah ini:

Kata sandi baru:Ketik ulang kata sandi baru:Menambahkan kata sandi untuk pengguna gituser

Anda sekarang dapat memverifikasi kata sandi Anda menggunakan perintah berikut:

cat /var/www/html/git/htpasswd

Anda akan mendapatkan output berikut:

gituser:$apr1$iPKZDbFB$ziRRbGXzVMMHaPYOtL05m/

Konfigurasi Nginx untuk Git

Selanjutnya, Anda perlu mengonfigurasi Nginx untuk melayani repositori Git. Anda dapat membuat file konfigurasi virtual host baru untuk Git dengan perintah berikut:

nano /etc/nginx/conf.d/git.conf

Tambahkan baris berikut:

server { dengarkan 80; root /var/www/html/git; # Tambahkan index.php ke daftar jika Anda menggunakan indeks PHP index.html index.htm index.nginx-debian.html; nama_server git.example.com; lokasi / { # Upaya pertama untuk melayani permintaan sebagai file, kemudian # sebagai direktori, kemudian kembali menampilkan 404. try_files $uri $uri/ =404; }lokasi ~ (/.*) { client_max_body_size 0; auth_basic "Masuk Git"; auth_basic_user_file "/var/www/html/git/htpasswd"; sertakan /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param GIT_PROJECT_ROOT /var/www/html/git; fastcgi_param REMOTE_USER $pengguna_jauh; fastcgi_param PATH_INFO $1; fastcgi_pass unix:/var/run/fcgiwrap.socket;}}

Simpan dan tutup file setelah Anda selesai. Kemudian, verifikasi Nginx untuk kesalahan sintaks dengan perintah berikut:

nginx -t

Anda akan mendapatkan output berikut:

nginx:file konfigurasi /etc/nginx/nginx.conf sintaksnya oknginx:file konfigurasi /etc/nginx/nginx.conf tes berhasil

Selanjutnya, restart layanan Nginx untuk menerapkan perubahan:

systemctl restart nginx

Anda juga dapat memverifikasi status layanan Nginx menggunakan perintah berikut:

systemctl status nginx

Anda akan mendapatkan output berikut:

? nginx.service - Server web berkinerja tinggi dan server proxy terbalik Dimuat:dimuat (/lib/systemd/system/nginx.service; diaktifkan; preset vendor:diaktifkan) Aktif:aktif (berjalan) sejak Sel 2020-11-17 07 :43:46 UTC; 4 detik yang lalu Dokumen:man:nginx(8) Proses:3240 ExecStartPre=/usr/sbin/nginx -t -q -g daemon aktif; master_proses aktif; (kode=keluar, status=0/SUCCESS) Proses:3256 ExecStart=/usr/sbin/nginx -g daemon aktif; master_proses aktif; (kode=keluar, status=0/SUCCESS) PID Utama:3257 (nginx) Tugas:3 (batas:4691) Memori:3,5M CGroup:/system.slice/nginx.service ??3257 nginx:master process /usr/ sbin/nginx -g daemon aktif; master_proses aktif; ??3258 nginx:proses pekerja ??3259 nginx:proses pekerja 17 November 07:43:46 ubuntu2004 systemd[1]:Memulai server web berkinerja tinggi dan server proxy terbalik...17 November 07:43:46 ubuntu2004 systemd[ 1]:Memulai Server web berkinerja tinggi dan server proxy terbalik.

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Uji HTTP Git Server

Pada titik ini, server Git diinstal dan dikonfigurasi. Sekarang, waktunya untuk mengujinya.

Pada mesin klien, instal paket Git dengan perintah berikut:

apt-get install git -y

Setelah terinstal, buat direktori bernama myapp dengan perintah berikut:

mkdir myapp

Selanjutnya, pindah ke direktori baru dan inisialisasi Git dengan perintah berikut:

cd myapp
git init

Selanjutnya, tambahkan repositori Git jarak jauh Anda dengan perintah berikut:

git remote add origin http://[email protected]/gituser.git

Selanjutnya, buat direktori app1 dan app2 dan juga buat file app1 dan app2 dengan beberapa konten di dalam direktori tersebut:

mkdir app1 app2
echo "Ini adalah aplikasi pertama saya"> app1/app1
echo "Ini adalah aplikasi pertama saya"> app2/app2

Selanjutnya, tambahkan semua direktori dan file ke repositori dengan perintah berikut:

git tambahkan .

Selanjutnya, komit perubahan dengan perintah berikut:

git commit -a -m "Tambahkan file dan direktori"

Anda akan mendapatkan output berikut:

[master (root-commit) 4e90372] Tambahkan file dan direktori 2 file diubah, 2 penyisipan(+) buat mode 100644 app1/app1 buat mode 100644 app2/app2

Selanjutnya, dorong perubahan ini ke server Git jarak jauh dengan perintah berikut:

git push master asal

Anda akan diminta untuk memberikan kata sandi untuk pengguna Git jarak jauh seperti yang ditunjukkan di bawah ini:

Sandi untuk 'http://[email protected]':

Berikan kata sandi Anda dan tekan Enter. Anda akan mendapatkan output berikut:

Menghitung objek:5, selesai.Kompresi Delta menggunakan hingga 4 utas.Mengompresi objek:100% (2/2), selesai.Menulis objek:100% (5/5), 354 byte | 0 byte/dtk, selesai.Total 5 (delta 0), digunakan kembali 0 (delta 0)Ke http://[email protected]/gituser.git * [cabang baru] master -> master

Output di atas menunjukkan bahwa file dan direktori Anda ditambahkan ke repositori Git jarak jauh. Jika Anda ingin mengkloning repositori ini ke sistem lokal Anda, jalankan perintah berikut:

git clone http://[email protected]/gituser.git

Anda akan mendapatkan output berikut:

Mengkloning ke 'gituser'...Kata sandi untuk 'http://[email protected]':remote:Menghitung objek:5, done.remote:Menghitung objek:100% (5/5), done.remote:Mengompresi objek:100% (2/2), done.remote:Total 5 (delta 0), digunakan kembali 0 (delta 0)Membongkar objek:100% (5/5), selesai. Memeriksa konektivitas... selesai. 

Kesimpulan

Selamat! Anda telah berhasil menginstal dan mengatur server HTTP Git di server Ubuntu 20.04. Sekarang Anda dapat mengimplementasikan server Git di lingkungan pengembangan Anda yang dapat diakses dari dalam LAN Anda.


Ubuntu
  1. Cara Menginstal Nginx di Ubuntu 20.04

  2. Cara Menginstal HTTP Git Server Dengan Nginx di Ubuntu 16.04

  3. Cara Menginstal HTTP Git Server dengan Nginx di Debian 11

  1. Cara Menginstal MediaWiki dengan Nginx di Ubuntu 16.04

  2. Cara Menginstal Magento dengan Nginx di Ubuntu 15.10

  3. Cara Menginstal Mailpile dengan Nginx di Ubuntu 15.10

  1. Cara Instal Redmine 3 dengan Nginx di Ubuntu 15.10

  2. Cara Menginstal Piwik dengan Nginx di Ubuntu 15.10

  3. Cara Menginstal Redmine 3.2 dengan Nginx di Ubuntu 16.04