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.
Odkazy
- Ubuntu
- Git