Előfeltételek
A szükséges szoftver telepítése
A Git-könyvtár létrehozása
Az Nginx konfigurálása
Jelszavas hitelesítés hozzáadása
Egy utolsó lépés
(Opcionális) Készítsen szkriptet, amely inicializálja a Git-tárolókat
A Git egy verziókezelő rendszer (VCS), amely lehetővé teszi a kód változásainak nyomon követését. Ebben az oktatóanyagban végigvezetjük a HTTP(S) Git-kiszolgáló telepítését, valamint a felhasználónév/jelszó hitelesítés hozzáadását.
Előfeltételek
- Debian 8 (Jessie).
- Sudo .
- Választott szövegszerkesztő (
nano, vim).
A szükséges szoftver telepítése
Szükségünk lesz nginx, git, fcgiwrapés apache httpd utils. Menjen előre, és írja be a terminálba.
sudo apt-get install nginx git fcgiwrap apache2-utils
dpkg will fail to install Nginx if another process (such as Apache) is already bound to port 80.
A Git könyvtár létrehozása
Feltéve, hogy a git könyvtárat a következő helyen szeretné létrehozni /var/www/git, akkor a következő parancsokat kell futtatnia:
mkdir /var/www/git
chown www-data:www-data /var/www/git # Make sure www-data (the user fastcgi runs) from has permissions.
Az Nginx konfigurálása
Most be kell állítanunk az Nginxet, hogy a Git forgalmat továbbadja a Gitnek. Ez hozzáadható az alapértelmezett konfigurációhoz, egyéni server {}a /etc/nginx/conf.dvagy a címen /etc/nginx/sites-enabled.
The configuration file's parameters and directive must be added in the order in which they are listed below.
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/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/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
}
Ha szeretné, hogy a git tárolók egy alkönyvtárban legyenek, pl. http://your-domain.com/reposhogy az első sort location ~ /repos(/.*) {, ez egy regex.
Make sure the server_name directive in your server {} doesn't clash with anything else or else Nginx wont pass the request on.
Jelszavas hitelesítés hozzáadása
Az Nginx elfogadja az Apache htpasswdfájlokat, létrehozásukhoz a következő parancsot kell végrehajtanunk:
htpasswd -c /var/www/git/htpasswd <your username>
A rendszer felszólítja a jelszó megadására. További felhasználók hozzáadásához tegye a következőket:
htpasswd /var/www/git/htpasswd <another username>
Egy utolsó lépés
Ügyeljen arra, hogy az Nginx újratöltse az összes módosítás végrehajtásához a következő futtatással:
sudo service nginx reload
Most már van egy privát Git szervere! Élvezd.
(Opcionális) Készítsen szkriptet, amely inicializálja a Git-tárolókat
Kérjük, vegye figyelembe, hogy www-data(a FastCGI alatt futó felhasználói fióknak) olvasási és írási hozzáféréssel kell rendelkeznie a Git-tárhoz, így a szkript létrehozása megmenti a későbbi fejfájást.
Nyissa meg a szkriptfájlt, pl. /var/www/git/gitinit.shés illessze be a következőket:
#!/bin/sh
sudo -u www-data mkdir $1
cd $1
sudo -u www-data git init --bare
A szkriptet így futtathatja:
cd /var/www/git
./gitinit.sh repo-name
Ne felejtse el engedélyezni a végrehajtást a következő futtatással:
chmod +x /var/www/git/gitinit.sh