Forutsetninger
Installerer nødvendig programvare
Opprette Git-katalogen
Konfigurerer Nginx
Legger til passordautentisering
Et siste steg
(Valgfritt) Lag et skript som initialiserer Git-lagre
Git er et versjonskontrollsystem (VCS) som muliggjør sporing av endringer i kode. I denne opplæringen vil vi gå gjennom installasjonen av en HTTP(S) Git-server, og legge til brukernavn/passordautentisering.
Forutsetninger
- Debian 8 (Jessie).
- Sudo .
- Valgfri tekstredigering (
nano, vim).
Installerer nødvendig programvare
Vi trenger nginx, git, fcgiwrapog apache httpd utils. Gå videre og skriv inn i terminalen.
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.
Opprette Git-katalogen
Forutsatt at du ønsker å lage git-katalogen på /var/www/git, må du kjøre følgende kommandoer:
mkdir /var/www/git
chown www-data:www-data /var/www/git # Make sure www-data (the user fastcgi runs) from has permissions.
Konfigurerer Nginx
Nå må vi konfigurere Nginx til å sende Git-trafikk til Git. Dette kan legges til standardkonfigurasjonen, en egendefinert server {}på /etc/nginx/conf.deller /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
}
Hvis du ønsker å ha git-repositoriene dine i en underkatalog, dvs. http://your-domain.com/reposlag den første linjen location ~ /repos(/.*) {, det er et regulært uttrykk.
Make sure the server_name directive in your server {} doesn't clash with anything else or else Nginx wont pass the request on.
Legger til passordautentisering
Nginx godtar Apache- htpasswdfiler, for å lage dem må vi utføre følgende kommando:
htpasswd -c /var/www/git/htpasswd <your username>
Du vil bli bedt om å skrive inn passordet ditt. For å legge til flere brukere, gjør du:
htpasswd /var/www/git/htpasswd <another username>
Et siste steg
Sørg for å laste inn Nginx på nytt for å bruke alle endringene ved å kjøre:
sudo service nginx reload
Du har nå en privat Git-server! Nyt.
(Valgfritt) Lag et skript som initialiserer Git-lagre
Vær oppmerksom på at www-data(brukerkontoen som FastCGI kjører under) må ha lese- og skrivetilgang til Git-depotet, å lage et skript sparer nå hodepine senere.
Åpne skriptfilen, dvs. /var/www/git/gitinit.shog lim inn følgende:
#!/bin/sh
sudo -u www-data mkdir $1
cd $1
sudo -u www-data git init --bare
Du kan kjøre skriptet slik:
cd /var/www/git
./gitinit.sh repo-name
Husk å tillate kjøring ved å kjøre:
chmod +x /var/www/git/gitinit.sh