GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal HTTP Git Server Dengan Nginx di Ubuntu 16.04

Git adalah sistem kontrol versi sumber terbuka dan gratis yang dapat digunakan untuk melacak perubahan kode. Git memungkinkan Anda membuat banyak repositori untuk aplikasi yang sama dan mengoordinasikan pekerjaan pada file-file itu di antara banyak orang. Ini terutama digunakan untuk manajemen kode sumber dalam pengembangan perangkat lunak.

Pada artikel ini, kita akan belajar cara menginstal HTTP Git Server Dengan Nginx di Ubuntu 16.04.

Persyaratan

  • Server Ubuntu 16.04 baru diinstal pada sistem Anda.
  • Pengguna Sudo dengan hak akses root.
  • Konfigurasi alamat IP statis 192.168.15.189 di server Anda

1 Memulai

Sebelum memulai, Anda perlu memperbarui sistem Anda dengan versi stabil terbaru.

Anda dapat melakukannya dengan menjalankan perintah berikut:

sudo apt-get update -y
sudo apt-get upgrade -y

Setelah sistem Anda diperbarui, mulai ulang sistem Anda dan masuk dengan pengguna sudo.

2 Instal Paket yang Diperlukan

Pertama, Anda perlu menginstal beberapa paket yang diperlukan termasuk nginx, git, nano dan fcgiwrap ke sistem Anda. Anda dapat menginstal semuanya dengan menjalankan perintah berikut:

sudo apt-get install nginx git nano fcgiwrap apache2-utils -y

Setelah semua paket yang diperlukan diinstal, Anda perlu membuat direktori untuk repositori Git. Anda dapat melakukannya dengan menjalankan perintah berikut:

sudo mkdir /var/www/html/git

Selanjutnya, berikan izin yang tepat ke direktori Git:

sudo chown -R www-data:www-data /var/www/html/git

Setelah selesai, Anda dapat melanjutkan untuk mengkonfigurasi server web Nginx.

3 Konfigurasi Nginx

Pertama, Anda perlu mengonfigurasi Nginx untuk meneruskan lalu lintas Git ke Git. Anda dapat melakukannya dengan mengedit file konfigurasi default Nginx:

sudo nano /etc/nginx/sites-available/default

Ubah file seperti gambar di bawah ini:

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;


        root /var/www/html/git;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

location ~ (/.*) {
    client_max_body_size 0; # Git pushes can be massive, just to make sure nginx doesn't suddenly cut the connection add this.
    auth_basic "Git Login"; # Whatever text will do.
    auth_basic_user_file "/var/www/html/git/htpasswd";
    include /etc/nginx/fastcgi_params; # Include the default fastcgi configs
    fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; # Tells fastcgi to pass the request to the git http backend executable
    fastcgi_param GIT_HTTP_EXPORT_ALL "";
    fastcgi_param GIT_PROJECT_ROOT /var/www/html/git; # /var/www/git is the location of all of your git repositories.
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param PATH_INFO $1; # Takes the capture group from our location directive and gives git that.
    fastcgi_pass  unix:/var/run/fcgiwrap.socket; # Pass the request to fastcgi
}

}

Simpan dan tutup file setelah Anda selesai. Kemudian uji Nginx untuk menemukan kesalahan konfigurasi dengan perintah berikut:

sudo nginx -t

Jika semuanya baik-baik saja, Anda akan melihat output berikut:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Selanjutnya, Anda perlu membuat akun pengguna yang perlu Anda gunakan untuk menelusuri komit ke repositori. Anda dapat membuat pengguna dengan nama hitesh dengan menggunakan utilitas htpasswd:

sudo htpasswd -c /var/www/html/git/htpasswd hitesh

Terakhir, restart Nginx untuk menerapkan semua perubahan dengan perintah berikut:

sudo systemctl restart nginx

Anda dapat memeriksa status server Nginx dengan perintah berikut:

sudo systemctl status nginx

Anda akan melihat output berikut:

?? nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2017-06-20 23:00:11 IST; 51min ago
  Process: 12415 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 7616 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS)
  Process: 12423 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 12419 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 12427 (nginx)
   CGroup: /system.slice/nginx.service
           ??????12427 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
           ??????12431 nginx: worker process                           

Jun 20 23:00:11 localhost systemd[1]: Stopped A high performance web server and a reverse proxy server.
Jun 20 23:00:11 localhost systemd[1]: Starting A high performance web server and a reverse proxy server...
Jun 20 23:00:11 localhost systemd[1]: nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument
Jun 20 23:00:11 localhost systemd[1]: Started A high performance web server and a reverse proxy server.

4 Buat Repositori Git

Setelah semuanya dikonfigurasi dengan benar, saatnya membuat repositori Git.

Anda dapat membuat repositori dengan nama repo.git dengan perintah berikut:

cd /var/www/html/git
sudo mkdir hitesh.git
sudo cd hitesh.git
sudo git --bare init
sudo git update-server-info
sudo chown -R www-data.www-data .
sudo chmod -R 777 .

Selanjutnya, Anda harus mengizinkan layanan http melalui firewall UFW. Secara default UFW dinonaktifkan pada sistem Anda, jadi Anda harus mengaktifkannya terlebih dahulu. Anda dapat mengaktifkannya dengan perintah berikut:

sudo ufw enable

Setelah firewall UFW diaktifkan, Anda dapat mengizinkan layanan HTTP dengan menjalankan perintah berikut:

sudo ufw allow http

Anda sekarang dapat memeriksa status firewall UFW dengan menjalankan perintah berikut:

sudo ufw status

Ok itu saja untuk konfigurasi sisi server. Anda sekarang dapat beralih ke sisi klien untuk menguji Git.

5 Uji Git pada Mesin Klien

Sebelum memulai, Anda perlu menginstal git pada sistem klien. Anda dapat menginstalnya dengan perintah berikut:

sudo apt-get install git -y

Pertama, buat repositori lokal dengan perintah berikut:

sudo mkdir ~/testproject

Selanjutnya, ubah direktori menjadi testproject dan mulai repositori jarak jauh baru dengan perintah berikut:

cd ~/testproject
git init
git remote add origin http://[email protected]/hitesh.git

Selanjutnya, buat beberapa file dan direktori dengan perintah berikut:

mkdir test1 test2 test3
echo "This is my first repository" > test1/repo1
echo "This is my second repository" > test2/repo2
echo "This is my third repository" > test3/repo3

Selanjutnya, jalankan perintah berikut untuk menambahkan semua file dan direktori ke repositori:

git add .
git commit -a -m "Add files and directoires"

Anda akan melihat output berikut:

[master 002fac9] Add files and directoires
 3 files changed, 3 insertions(+)
 create mode 100644 repo1
 create mode 100644 repo2
 create mode 100644 repo3

Selanjutnya, push semua file dan direktori ke server Git dengan perintah berikut:

git push origin master

Anda akan melihat output berikut:

Password for 'http://[email protected]': 
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (5/5), 422 bytes | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To http://[email protected]/hitesh.git
   68f1270..002fac9  master -> master

Sekarang, semua file dan direktori Anda telah di-commit ke server Git Anda.

Proses pembuatan repositori Git Anda sekarang telah selesai. Anda sekarang dapat dengan mudah mengkloning repositori Anda di masa mendatang. Anda dapat mengkloning repositori Anda menggunakan perintah berikut pada sistem jarak jauh:

git clone [email protected]:/var/www/html/git/hitesh.git

Anda akan melihat output berikut:

Cloning into 'hitesh'...
[email protected]'s password: 
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (3/3), done.
Receiving objects: 100% (8/8), 598 bytes | 0 bytes/s, done.
remote: Total 8 (delta 0), reused 0 (delta 0)
Checking connectivity... done.

Sekarang, ubah direktori ke repositori kloning dengan perintah berikut:

cd hitesh
tree

Anda akan melihat output berikut:

.
|-- test1
|   `-- repo1
|-- test2
|   `-- repo2
`-- test3
    `-- repo3

3 directories, 3 files

Kesimpulan

Saya harap Anda sekarang dapat dengan mudah mendorong, menarik, mengkloning, dan mengkomit kode sumber menggunakan server Git. Jangan ragu untuk mengomentari saya jika Anda ragu.


Ubuntu
  1. Cara Menginstal Nginx di Ubuntu 20.04

  2. Cara Menginstal HTTP Git Server dengan Nginx di Ubuntu 20.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