GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat HTTP Git Server s Nginx na Debian 11

Git je open-source systém pro správu verzí, který používají tisíce vývojářů po celém světě. Používá se ke sledování změn vašeho softwaru na úrovni zdroje. Umožňuje vám sledovat změny, vracet je zpět do předchozí fáze a vytvářet alternativní verze souborů a adresářů.

HTTP Git Server je projekt s otevřeným zdrojovým kódem, který používá webový server Nginx k obsluze úložišť Git přes vaši místní síť (LAN). Je velmi jednoduchý a snadno se nastavuje. Kdokoli jej může spravovat z rozhraní příkazového řádku.

V tomto tutoriálu vysvětlím, jak nastavit server úložiště HTTP Git s Nginx na Debianu 11.

Předpoklady

  • Server se systémem Debian 11.
  • Platný název domény s adresou IP vašeho serveru.
  • Na vašem serveru je nakonfigurováno heslo uživatele root.

Instalovat Nginx a další závislosti

Nejprve budete muset nainstalovat webový server Nginx a další požadované balíčky pro nastavení serveru HTTP Git. Všechny je můžete nainstalovat pomocí následujícího příkazu:

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

Jakmile jsou všechny balíčky nainstalovány, můžete přejít k dalšímu kroku.

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

Dále budete muset vytvořit adresář pro uložení úložiště Git. Vytvořme adresář s názvem myrepo uvnitř webového kořenového adresáře Nginx:

mkdir /var/www/html/myrepo

Dále změňte adresář na myrepo a vytvořte další adresář pro uživatele:

cd /var/www/html/myrepo
mkdir user1.git

Dále přejděte do uživatelského adresáře a inicializujte úložiště Git pomocí následujícího příkazu:

cd user1.git
git --bare init

Získáte následující výstup:

Initialized empty Git repository in /var/www/html/myrepo/user1.git/

Dále aktualizujte informace o serveru Git pomocí následujícího příkazu:

git update-server-info

Dále změňte vlastnictví myrepo a nastavte správná oprávnění pomocí následujícího příkazu:

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

Dále vytvořte uživatele s názvem uživatel1 a nastavte heslo:

htpasswd -c /var/www/html/myrepo/htpasswd user1

Heslo můžete nastavit, jak je uvedeno níže:

New password: 
Re-type new password: 
Adding password for user user1

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

cat /var/www/html/myrepo/htpasswd

Ukázkový výstup:

user1:$apr1$LoyCEkzA$Fjq5nBbLhBRdaxCQBBUQd1

Konfigurace Nginx pro poskytování Git úložiště

Dále budete muset vytvořit konfigurační soubor virtuálního hostitele Nginx pro obsluhu úložiště Git.

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

Přidejte následující řádky:

server {
        listen 80;

        root /var/www/html/myrepo;

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

        server_name git.yourdomain.com;

        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; 
    auth_basic "Git Login"; 
    auth_basic_user_file "/var/www/html/myrepo/htpasswd";
    include /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/myrepo;
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param PATH_INFO $1; 
    fastcgi_pass  unix:/var/run/fcgiwrap.socket;
}

}

Po dokončení uložte a zavřete soubor a poté ověřte, zda Nginx neobsahuje nějakou chybu syntaxe:

nginx -t

Získáte následující výstup:

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

Nakonec restartujte službu Nginx, aby se změny projevily:

systemctl restart nginx

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

systemctl status nginx

Získáte následující výstup:

? 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 Sat 2021-12-11 08:00:04 UTC; 2s ago
       Docs: man:nginx(8)
    Process: 144985 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 144986 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 144987 (nginx)
      Tasks: 2 (limit: 2341)
     Memory: 2.5M
        CPU: 42ms
     CGroup: /system.slice/nginx.service
             ??144987 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??144988 nginx: worker process

Dec 11 08:00:04 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 11 08:00:04 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Dec 11 08:00:04 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

Připojení k úložišti Git z klienta

V tomto okamžiku je server Git HTTP nastaven s Nginx. Nyní je čas jej připojit z klientského počítače a otestovat jej.

Nejprve nainstalujte balíček Git na klientský počítač pomocí následujícího příkazu:

apt-get install git -y

Dále vytvořte adresář pro svůj projekt pomocí následujícího příkazu:

mkdir project

Dále přejděte do adresáře projektu a inicializujte Git pomocí příkazu níže:

cd project
git init

Dále nakonfigurujte Git pomocí svého e-mailu a uživatelského jména:

git config --global user.email "[email protected]"
git config --global user.name "user1"

Dále přidejte svůj Git HTTP server pomocí následujícího příkazu:

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

Dále vytvořte adresář s názvem dev01 a přidejte do něj soubor:

mkdir dev01
echo "This is my first application" > dev01/file1

Dále přidejte vytvořený adresář a soubor do úložiště Git:

git add .

Dále potvrďte změny pomocí následujícího příkazu:

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

Získáte následující výstup:

[master (root-commit) 0299d83] Add files and directories
 1 file changed, 1 insertion(+)
 create mode 100644 dev01/file1

Dále nahrajte svůj soubor a adresář na server HTTP Git pomocí následujícího příkazu:

git push origin master

Budete požádáni o zadání hesla pro přístup na server Git:

Password for 'http://[email protected]': 

Jakmile se připojíte, získáte následující výstup:

Counting objects: 4, done.
Writing objects: 100% (4/4), 281 bytes | 281.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To http://git.yourdomain.com/user1.git
 * [new branch]      master -> master

Své úložiště si také můžete stáhnout přímo ze serveru Git pomocí následujícího příkazu:

git clone http://[email protected]domain.com/user1.git

Získáte následující výstup:

Cloning into 'user1'...
Password for 'http://[email protected]': 
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.

Závěr

Ve výše uvedené příručce jste se naučili, jak nastavit HTTP Git server s Nginx na Debianu 11. Nyní můžete toto nastavení implementovat do svého místního vývojového prostředí a spravovat a sledovat svůj projekt pomocí příkazového řádku.


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

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

  3. Jak nainstalovat Ghost na Debian s Nginx

  1. Jak nainstalovat DokuWiki na Debian Wheezy s Nginx

  2. Jak nainstalovat FuelPHP s Nginx na Debian 8 VPS

  3. Jak nainstalovat WonderCMS s Nginx na Debian 11

  1. Jak nainstalovat Git na Debian 9

  2. Jak nainstalovat WonderCMS s Nginx na Debian 9

  3. Jak nainstalovat HTTP Git Server s Nginx na Ubuntu 18.04 LTS