Предуслови
Инсталирање потребног софтвера
Креирање Гит директоријума
Конфигурисање Нгинк-а
Додавање аутентификације лозинком
Последњи корак
(Опционално) Направите скрипту која иницијализује Гит спремишта
Гит је систем контроле верзија (ВЦС) који омогућава праћење промена у коду. У овом водичу ћемо проћи кроз инсталирање ХТТП(С) Гит сервера и додавање аутентификације корисничког имена/лозинке.
Предуслови
- Дебиан 8 (Јессие).
- Судо .
- Едитор текста по вашем избору (
nano, vim).
Инсталирање потребног софтвера
Биће нам потребни хттпд корисни програми nginx, git, fcgiwrapи апацхе. Само напред и укуцајте у терминал.
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.
Креирање Гит директоријума
Под претпоставком да желите да креирате гит директоријум на адреси /var/www/git, требало би да покренете следеће команде:
mkdir /var/www/git
chown www-data:www-data /var/www/git # Make sure www-data (the user fastcgi runs) from has permissions.
Конфигурисање Нгинк-а
Сада морамо да конфигуришемо Нгинк да преноси Гит саобраћај на Гит. Ово се може додати подразумеваној конфигурацији, прилагођеној server {}на /etc/nginx/conf.dили /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
}
Ако желите да имате гит спремишта у поддиректоријуму, тј. http://your-domain.com/reposнаправи први ред location ~ /repos(/.*) {, то је регуларни израз.
Make sure the server_name directive in your server {} doesn't clash with anything else or else Nginx wont pass the request on.
Додавање аутентификације лозинком
Нгинк прихвата Апацхе htpasswdдатотеке, да бисмо их креирали, мораћемо да извршимо следећу команду:
htpasswd -c /var/www/git/htpasswd <your username>
Од вас ће бити затражено да унесете своју лозинку. Да бисте додали још корисника, урадите следеће:
htpasswd /var/www/git/htpasswd <another username>
Последњи корак
Обавезно поново учитајте Нгинк да бисте применили све промене тако што ћете покренути:
sudo service nginx reload
Сада имате приватни Гит сервер! Уживати.
(Опционално) Направите скрипту која иницијализује Гит спремишта
Имајте на уму да www-data(кориснички налог под којим ФастЦГИ ради) мора да има приступ за читање и писање Гит репозиторијуму, тако да креирање скрипте сада штеди главобољу касније.
Отворите датотеку скрипте, тј. /var/www/git/gitinit.shи залепите следеће:
#!/bin/sh
sudo -u www-data mkdir $1
cd $1
sudo -u www-data git init --bare
Скрипту можете покренути овако:
cd /var/www/git
./gitinit.sh repo-name
Не заборавите да дозволите извршење покретањем:
chmod +x /var/www/git/gitinit.sh