GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat HTTP Git Server s Nginx na Ubuntu 18.04 LTS

Git je bezplatný a otevřený systém pro správu verzí, který lze použít ke sledování změn kódu. Git vám umožňuje vytvářet mnoho úložišť pro stejnou aplikaci a koordinovat práci na těchto souborech mezi více lidmi. Primárně se používá pro správu zdrojového kódu při vývoji softwaru.

V tomto článku se naučíme, jak nainstalovat HTTP Git Server s Nginx na Ubuntu 18.04 LTS (Bionic Beaver).

Požadavky

  • Ve vašem systému je nainstalován nový server Ubuntu 18.04.
  • Uživatel Sudo s právy root.
  • Na vašem serveru je nakonfigurována statická IP adresa, v tomto kurzu používám IP 192.168.1.100.

1 Začínáme

Než začnete, budete muset svůj systém aktualizovat na nejnovější stabilní verzi.

Můžete to provést spuštěním následujícího příkazu:

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

Jakmile je váš systém aktualizován, restartujte systém a přihlaste se pomocí uživatele sudo.

2 Nainstalujte požadované balíčky

Nejprve budete muset do systému nainstalovat některé požadované balíčky včetně nginx, git, nano a fcgiwrap. Všechny je můžete nainstalovat spuštěním následujícího příkazu:

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

Jakmile jsou nainstalovány všechny požadované balíčky, budete muset vytvořit adresář pro úložiště Git. Můžete to provést spuštěním následujícího příkazu:

sudo mkdir /var/www/html/git

Dále udělte správná oprávnění adresáři Git:

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

Jakmile budete hotovi, můžete pokračovat v konfiguraci webového serveru Nginx.

3 Konfigurace Nginx

Nejprve budete muset nakonfigurovat Nginx, aby předával Git provoz Git. Můžete to udělat úpravou výchozího konfiguračního souboru Nginx:

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

Změňte soubor, jak je znázorněno níže:

# 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
}

}

Po dokončení uložte a zavřete soubor. Poté otestujte Nginx na jakoukoli chybu konfigurace pomocí následujícího příkazu:

sudo nginx -t

Pokud je vše v pořádku, měli byste vidět následující výstup:

Dále si budete muset vytvořit uživatelský účet, který budete muset používat k procházení repozitáře. Uživatele se jménem hitesh můžete vytvořit pomocí nástroje htpasswd:

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

Nakonec restartujte Nginx a použijte všechny změny pomocí následujícího příkazu:

sudo systemctl restart nginx

Stav serveru Nginx můžete zkontrolovat pomocí následujícího příkazu:

sudo systemctl status nginx

Měli byste vidět následující výstup:

4 Vytvoření úložiště Git

Jakmile je vše správně nakonfigurováno, je čas vytvořit úložiště Git.

Úložiště s názvem hitesh.git můžete vytvořit pomocí následujícího příkazu:

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 755 .

Dále budete muset povolit službu HTTP přes firewall UFW. Ve výchozím nastavení je UFW ve vašem systému zakázáno, takže jej musíte nejprve povolit. Můžete jej povolit pomocí následujícího příkazu:

sudo ufw enable

Jakmile je povolena brána firewall UFW, můžete povolit službu HTTP a SSH spuštěním následujícího příkazu:

sudo ufw allow http
sudo ufw allow ssh

SSH není pro GIT potřeba, ale měli byste mu povolit, abyste mohli spravovat váš server přes SSH.

Nyní můžete zkontrolovat stav brány firewall UFW spuštěním následujícího příkazu:

sudo ufw status

Ok, to je vše pro konfiguraci na straně serveru. Nyní můžete přejít na stranu klienta a otestovat Git.

5 Test Gitu na klientském počítači

Než začnete, budete muset nainstalovat git na klientský systém. Můžete jej nainstalovat pomocí následujícího příkazu:

sudo apt-get install git -y

Nejprve vytvořte místní úložiště pomocí následujícího příkazu:

sudo mkdir ~/testproject

Dále změňte adresář na 'testproject' a spusťte nové vzdálené úložiště pomocí následujícího příkazu:

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

Dále vytvořte několik souborů a adresářů pomocí následujícího příkazu:

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

Dále spusťte následující příkaz pro přidání všech souborů a adresářů do úložiště:

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

Měli byste vidět následující výstup:

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

Dále odešlete všechny soubory a adresáře na server Git pomocí následujícího příkazu:

git push origin master

Měli byste vidět následující výstup:

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

Nyní jsou všechny vaše soubory a adresáře odevzdány vašemu serveru Git.

Proces vytváření vašeho úložiště Git je nyní dokončen. Nyní můžete snadno klonovat své úložiště v budoucnu. Své úložiště můžete naklonovat pomocí následujícího příkazu na vzdáleném systému:

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

Měli byste vidět následující výstup:

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.

Nyní změňte adresář na klonované úložiště pomocí následujícího příkazu:

cd hitesh
tree

Měli byste vidět následující výstup:

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

3 directories, 3 files

Stáhnout jako virtuální počítač

Tento tutoriál je k dispozici jako obraz virtuálního stroje připravený k použití ve formátu ovf/ova, který je kompatibilní s VMWare a Virtualbox. Obraz virtuálního počítače používá následující přihlašovací údaje:

Přihlášení SSH / Shell

Uživatelské jméno:správce
Heslo:howtoforge

Tento uživatel má práva sudo.

Přihlášení do GIT

Uživatelské jméno: hitesh
Heslo:howtoforge

IP VM je 192.168.1.100, lze ji změnit v souboru /etc/netplan/01-netcfg.yaml. Změňte prosím všechna výše uvedená hesla pro zabezpečení virtuálního počítače.

Závěr

Doufám, že nyní můžete snadno odeslat, stáhnout, klonovat a odevzdat zdrojový kód pomocí serveru Git. Pokud máte nějaké pochybnosti, neváhejte mě komentovat.

  • Ubuntu
  • Git

Ubuntu
  1. Jak nainstalovat HTTP Git Server s Nginx na Ubuntu 20.04

  2. Jak nainstalovat HTTP Git Server s Nginx na Debian 11

  3. Jak nainstalovat Elgg s Nginx na Ubuntu 18.04

  1. Jak nainstalovat HTTP Git Server s Nginx na Ubuntu 16.04

  2. Jak nainstalovat RabbitMQ Server na Ubuntu 18.04 &16.04 LTS

  3. Jak nainstalovat Gitlab Server na Ubuntu 18.04 &16.04 LTS

  1. Jak nainstalovat webový server Nginx na Ubuntu 18.04

  2. Jak nainstalovat Nextcloud s Nginx na Ubuntu 18.04 LTS

  3. Jak nainstalovat OpenLiteSpeed ​​HTTP Server s PHP na Ubuntu 18.04 LTS