Requisits previs
Instal·lació del programari necessari
Creant el directori Git
Configuració de Nginx
Afegeix l'autenticació de contrasenya
Un últim pas
(Opcional) Feu un script que inicialitzi els dipòsits Git
Git és un sistema de control de versions (VCS) que permet el seguiment dels canvis en el codi. En aquest tutorial, anem a instal·lar un servidor Git HTTP(S) i afegir l'autenticació de nom d'usuari/contrasenya.
Requisits previs
- Debian 8 (Jessie).
- Sudo .
- Editor de text que escolliu (
nano, vim).
Instal·lació del programari necessari
Necessitarem nginx, git, fcgiwrapi apache httpd utils. Continueu i escriviu al terminal.
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.
Creant el directori Git
Suposant que voleu crear el directori git a /var/www/git, haureu d'executar les ordres següents:
mkdir /var/www/git
chown www-data:www-data /var/www/git # Make sure www-data (the user fastcgi runs) from has permissions.
Configuració de Nginx
Ara hem de configurar Nginx per transmetre el trànsit de Git a Git. Això es pot afegir a la configuració predeterminada, un personalitzat server {}a /etc/nginx/conf.do /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
}
Si voleu tenir els vostres repositoris git en un subdirectori, és a dir. http://your-domain.com/reposfeu la primera línia location ~ /repos(/.*) {, és una expressió regular.
Make sure the server_name directive in your server {} doesn't clash with anything else or else Nginx wont pass the request on.
Afegeix l'autenticació de contrasenya
Nginx accepta htpasswdfitxers Apache , per crear-los, haurem d'executar l'ordre següent:
htpasswd -c /var/www/git/htpasswd <your username>
Se us demanarà que introduïu la vostra contrasenya. Per afegir més usuaris, feu el següent:
htpasswd /var/www/git/htpasswd <another username>
Un darrer pas
Assegureu-vos de tornar a carregar Nginx per aplicar tots els canvis executant:
sudo service nginx reload
Ara teniu un servidor Git privat! Gaudeix.
(Opcional) Feu un script que inicialitzi els dipòsits Git
Tingueu en compte que www-data(el compte d'usuari amb el qual s'executa FastCGI) ha de tenir accés de lectura i escriptura al repositori Git, la creació d'un script ara estalvia maldecaps més endavant.
Obriu el vostre fitxer d'script, és a dir. /var/www/git/gitinit.shi enganxeu el següent:
#!/bin/sh
sudo -u www-data mkdir $1
cd $1
sudo -u www-data git init --bare
Podeu executar l'script així:
cd /var/www/git
./gitinit.sh repo-name
Recordeu permetre l'execució executant:
chmod +x /var/www/git/gitinit.sh