Конфигурирайте Git Server с HTTP в Ubuntu

Configure Git Server With Http Ubuntu



Ако искате да настроите Git HTTP сървър за работа с Git хранилища частно, тази статия е за вас. В тази статия ще ви покажа как да конфигурирате Git Smart HTTP сървър на Ubuntu с Apache HTTP сървър. И така, нека започнем.

Пакетите Git и Apache се предлагат в официалното хранилище на пакети на Ubuntu. Така че можете лесно да го инсталирате с мениджъра на пакети APT.







Първо актуализирайте кеша на хранилището на APT пакета със следната команда:



$sudoподходяща актуализация



Кешът на хранилището на пакета APT трябва да се актуализира.





Сега инсталирайте Git и Apache със следната команда:



$sudoподходящИнсталирай отивамapache2 apache2-utils

Сега натиснете И и след това натиснете за да потвърдите инсталацията.

Git и Apache трябва да бъдат инсталирани.

Конфигуриране на Apache HTTP сървър за Git:

Сега активирайте Apache mod_env , mod_cgi , mod_alias и mod_rewrite модули със следната команда:

$sudoa2enmodenvcgiпсевдонимнова редакция

Необходимите Apache модули трябва да бъдат активирани.

Сега създайте нова директория /var/www/git за запазване на всички Git хранилища със следната команда:

$sudo mkdir /където/www/отивам

Сега създайте нова конфигурация на Apache сайт /etc/apache2/sites-available/git.conf за Git със следната команда:

$sudo нано /и т.н./apache2/налични сайтове/git.conf

Сега въведете следните редове в конфигурационния файл:

<VirtualHost*:80>
Уеб администратор на ServerAdmin@localhost

SetEnv GIT_PROJECT_ROOT<силен> /където/www/отивамсилен>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/отивам/ /usr/lib/git-core/git-http-backend/

Псевдоним/отивам /където/www/отивам

<Директория/usr/lib/git-core>
Опции +ExecCGI-MultiViews+SymLinksIfOwnerMatch
AllowOverride Няма
Изисква всички предоставени
Директория>

DocumentRoot/където/www/html

<Директория/където/www>
Опции Индекси FollowSymLinks MultiViews
AllowOverride Няма
Изисква всички предоставени
Директория>


ErrorLog$ {APACHE_LOG_DIR}/error.log
Предупреждение от LogLevel
CustomLog$ {APACHE_LOG_DIR}/access.log комбиниран
VirtualHost>

Окончателният конфигурационен файл изглежда както следва. Сега запишете конфигурационния файл, като натиснете + х следван от И и .

Сега деактивирайте конфигурацията на сайта на Apache по подразбиране със следната команда:

$sudoa2dissite 000-default.conf

Конфигурацията на сайта по подразбиране трябва да бъде деактивирана.

Сега активирайте конфигурацията на сайта на Git със следната команда:

$sudoa2ensite git.conf

Конфигурацията на сайта на Git трябва да бъде активирана.

Сега рестартирайте Apache HTTP сървър със следната команда:

$sudosystemctl рестартирайте apache2

За да стартирате ново хранилище на Git, достъпно през HTTP сървъра на Apache, ще трябва да изпълните няколко команди. Не искате да правите едно и също нещо отново и отново, само за да създадете ново хранилище на Git. Така че реших да напиша скрипт за тази цел.

Първо, създайте нов скрипт на обвивката /usr/local/bin/git-create-repo.sh със следната команда:

$sudo нано /usr/местен/съм/git-create-repo.sh

Сега въведете следните редове кодове в скрипта на обвивката.

#!/bin/bash

GIT_DIR='/var/www/git'
REPO_NAME=$ 1

mkdir -стр '$ {GIT_DIR}/$ {REPO_NAME}.отивам'
CD '$ {GIT_DIR}/$ {REPO_NAME}.отивам'

git init --просто &> /dev/нула
докосванеgit-daemon-export-ok
cpкуки/post-update.sample куки/след актуализация
git confighttp.receivepackвярно
git update-server-info
чаун -Рфwww-данни: www-данни'$ {GIT_DIR}/$ {REPO_NAME}.отивам'
изхвърлен „Git хранилище“$ {REPO_NAME}'създаден в$ {GIT_DIR}/$ {REPO_NAME}.отивам'

След като въведете тези редове, скриптът на обвивката трябва да изглежда както следва. Сега запишете файла, като натиснете + х следван от И и .

Сега добавете разрешение за изпълнение към скрипта на обвивката със следната команда:

$sudo chmod+ x/usr/местен/съм/git-create-repo.sh

Сега създайте ново хранилище на Git тест в корена на проекта Git /var/www/git използвайки git-create-repo.sh скрипт на обвивката, както следва:

$sudogit-create-repo.shтест

Хранилището на Git тест трябва да се създаде.

За достъп до хранилището на Git се нуждаете от IP адреса на Git HTTP сървъра.

$ipда се

Както можете да видите, IP адресът в моя случай е 192.168.21.208 . При вас ще бъде различно. Заменете го с вашия отсега нататък.

Сега можете да клонирате тест Git хранилището, както следва:

$git клонингhttp://192.168.21.208/отивам/test.go

Хранилището на Git тест трябва да се клонира.

Сега, нека добавим нов ангажимент към тест Git хранилище.

$CDтест/
$изхвърлен 'Здравей свят' >Здравейте
$git добави.
$git commit „първоначален ангажимент“

Сега качете промените в тест Git хранилище на сървъра, както следва:

$git pushпроизход

Както можете да видите, промените се качват отлично.

Конфигуриране на удостоверяване на потребителя:

В този раздел ще ви покажа как да конфигурирате удостоверяване на потребителя в хранилищата на Git в сървъра.

Първо, редактирайте git.conf конфигурационен файл на сайта, както следва:

$sudo нано /и т.н./apache2/налични сайтове/git.conf

Сега добавете следния раздел в конфигурационния файл.

<LocationMatch/отивам/.*.отивам>
AuthType Basic
AuthName„Git Verification“
AuthUserFile/и т.н./apache2/git.passwd
Изисква валиден потребител
LocationMatch>

Тук, /etc/apache2/git.passwd е файлът на потребителската база данни.

Окончателният конфигурационен файл трябва да изглежда по следния начин. Сега запишете файла, като натиснете + х следван от И и .

Сега създайте нов файл с потребителска база данни /etc/apache2/git.passwd и добавете нов потребител (да речем шовон ) към файла на базата данни, както следва:

$sudohtpasswd-° С /и т.н./apache2/git.passwd shovon

Сега въведете нова парола за новия потребител и натиснете .

Въведете отново същата парола и натиснете .

Двойката потребител-парола трябва да бъде добавена към базата данни.

Сега рестартирайте Apache HTTP сървър със следната команда:

$sudosystemctl рестартирайте apache2

Сега, ако се опитате да клонирате тест хранилище отново, ще бъдете помолени да удостоверите, както можете да видите на екрана по -долу.

След като се удостоверите с потребителско име и парола, ще имате достъп до хранилището на Git.

Дори когато се опитвате да натиснете или издърпате от хранилището на Git, също ще бъдете помолени за потребителско име и парола.

След като удостоверите, push/pull ще работи.

Можете също да зададете различна потребителска база данни за различни Git хранилища. Това може да бъде полезно за проекти, в които много хора работят заедно върху едно и също хранилище на Git.

За да зададете удостоверяване в хранилището на Git, първо редактирайте git.conf конфигурационен файл на сайта, както следва:

$sudo нано /и т.н./apache2/налични сайтове/git.conf

Сега добавете следните редове в конфигурационния файл.

<Местоположение/отивам/test.go>
AuthType Basic
AuthName„Git Verification“
AuthUserFile/и т.н./apache2/git.test.passwd
Изисква валиден потребител
Местоположение>

<Местоположение/отивам/test2.git>
AuthType Basic
AuthName„Git Verification“
AuthUserFile/и т.н./apache2/git.test2.passwd
Изисква валиден потребител
Местоположение>

За всяко Git хранилище тест и тест2 , да се раздел е дефиниран. За всяко Git хранилище се използва различен файл с потребителска база данни.

Окончателният конфигурационен файл трябва да изглежда по следния начин. Сега запишете конфигурационния файл, като натиснете + х следван от И и .

Сега можете да създадете необходимите потребителски бази данни, както следва:

$sudohtpasswd-° С /и т.н./apache2/git.test.passwd USERNAME
$sudohtpasswd-° С /и т.н./apache2/git.test2.passwd USERNAME

След като приключите, рестартирайте Apache HTTP сървър със следната команда:

$sudosystemctl рестартирайте apache2

Сега всяко хранилище на Git трябва да има свой собствен набор от потребители, които да имат достъп до него.

Така че по този начин конфигурирате Git Server с Apache HTTP сървър в Ubuntu. Благодаря, че прочетохте тази статия.