Parakushtet
Instalimi i softuerit të nevojshëm
Krijimi i drejtorisë Git
Konfigurimi i Nginx
Shtimi i vërtetimit të fjalëkalimit
Një hap i fundit
(Opsionale) Krijoni një skript që inicializon depot e Git
Git është një sistem i kontrollit të versionit (VCS) që mundëson gjurmimin e ndryshimeve në kod. Në këtë tutorial, ne do të kalojmë në instalimin e një serveri Git HTTP(S) dhe shtimin e vërtetimit të emrit të përdoruesit/fjalëkalimit.
Parakushtet
- Debian 8 (Jessie).
- Sudo .
- Redaktori i tekstit sipas zgjedhjes suaj (
nano
, vim
).
Instalimi i softuerit të nevojshëm
Do të na duhen nginx
, git
, fcgiwrap
dhe apache httpd utils. Shkoni përpara dhe shkruani në 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.
Krijimi i drejtorisë Git
Duke supozuar se dëshironi të krijoni direktorinë git në /var/www/git
, do t'ju duhet të ekzekutoni komandat e mëposhtme:
mkdir /var/www/git
chown www-data:www-data /var/www/git # Make sure www-data (the user fastcgi runs) from has permissions.
Konfigurimi i Nginx
Tani duhet të konfigurojmë Nginx që të kalojë trafikun Git te Git. Kjo mund të shtohet në konfigurimin e paracaktuar, një personal server {}
në /etc/nginx/conf.d
ose /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
}
Nëse dëshironi t'i keni magazinat tuaja të git në një nën-direktori dmth. http://your-domain.com/repos
bëni rreshtin e parë location ~ /repos(/.*) {
, është një regex.
Make sure the server_name
directive in your server {}
doesn't clash with anything else or else Nginx wont pass the request on.
Shtimi i vërtetimit të fjalëkalimit
Nginx pranon htpasswd
skedarë Apache , për t'i krijuar ato, do të duhet të ekzekutojmë komandën e mëposhtme:
htpasswd -c /var/www/git/htpasswd <your username>
Do t'ju kërkohet të shkruani fjalëkalimin tuaj. Për të shtuar më shumë përdorues, bëni:
htpasswd /var/www/git/htpasswd <another username>
Një hap i fundit
Sigurohuni që të ringarkoni Nginx për të aplikuar të gjitha ndryshimet duke ekzekutuar:
sudo service nginx reload
Tani keni një server privat Git! Kënaquni.
(Opsionale) Krijoni një skript që inicializon depot e Git
Ju lutemi vini re se www-data
(llogaria e përdoruesit nën të cilën funksionon FastCGI) duhet të ketë akses për lexim dhe shkrim në depon e Git, duke krijuar një skript tani kursen dhimbje koke më vonë.
Hapni skedarin tuaj të skriptit dmth. /var/www/git/gitinit.sh
dhe ngjitni sa vijon:
#!/bin/sh
sudo -u www-data mkdir $1
cd $1
sudo -u www-data git init --bare
Ju mund ta ekzekutoni skriptin si kjo:
cd /var/www/git
./gitinit.sh repo-name
Mos harroni të lejoni ekzekutimin duke ekzekutuar:
chmod +x /var/www/git/gitinit.sh