Git

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

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

Инсталиране на Git и Apache HTTP сървър:

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

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

$ sudo apt актуализация

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

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

$ sudo apt install git apache2 apache2-utils

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

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

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

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

$ sudo a2enmod env cgi псевдоним пренаписване

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

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

$ sudo mkdir / var / www / git

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

$ sudo nano / etc / apache2 / sites-available / git.конф

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


ServerAdmin уеб администратор @ localhost
 
SetEnv GIT_PROJECT_ROOT / var / www / git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias ​​/ git / / usr / lib / git-core / git-http-backend /
 
Псевдоним / git / var / www / git
 

Опции + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride Няма
Изискване на всички предоставени

 
DocumentRoot / var / www / html
 

Опции Индекси FollowSymLinks MultiViews
AllowOverride Няма
Изискване на всички предоставени

 
 
ErrorLog $ APACHE_LOG_DIR / грешка.дневник
LogLevel предупреждава
CustomLog $ APACHE_LOG_DIR / достъп.дневник комбиниран

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

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

$ sudo a2dissite 000-по подразбиране.конф

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

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

$ sudo a2ensite git.конф

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

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

$ sudo systemctl рестартирайте apache2

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

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

$ sudo nano / usr / local / bin / git-create-repo.ш

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

#!/ bin / bash
 
GIT_DIR = "/ var / www / git"
REPO_NAME = $ 1
 
mkdir -p "$ GIT_DIR / $ REPO_NAME.git "
cd "$ GIT_DIR / $ REPO_NAME.git "
 
git init --bare &> / dev / null
докоснете git-daemon-export-ok
cp куки / след актуализация.примерни куки / след актуализация
git config http.getpack true
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
echo "Git хранилище '$ REPO_NAME' създадено в $ GIT_DIR / $ REPO_NAME.git "

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

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

$ sudo chmod + x / usr / local / bin / git-create-repo.ш

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

$ sudo git-create-repo.ш тест

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

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

$ ip a

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

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

$ git clone http: // 192.168.21.208 / git / тест.git

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

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

$ cd тест /
$ echo "Hello World"> здравей
$ git add .
$ git commit -m 'първоначален ангажимент'

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

$ git push origin

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

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

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

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

$ sudo nano / etc / apache2 / sites-available / git.конф

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


AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.passwd
Изисквайте валиден потребител

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

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

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

$ sudo htpasswd -c / etc / apache2 / git.passwd shovon

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

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

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

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

$ sudo systemctl рестартирайте apache2

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

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

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

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

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

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

$ sudo nano / etc / apache2 / sites-available / git.конф

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


AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.тест.passwd
Изисквайте валиден потребител

 

AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.тест2.passwd
Изисквайте валиден потребител

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

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

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

$ sudo htpasswd -c / etc / apache2 / git.тест.passwd ИМЕ НА ПОТРЕБИТЕЛЯ
$ sudo htpasswd -c / etc / apache2 / git.тест2.passwd ИМЕ НА ПОТРЕБИТЕЛЯ

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

$ sudo systemctl рестартирайте apache2

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

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

Най-добрите приложения за картографиране на геймпад за Linux
Ако искате да играете игри на Linux с геймпад вместо типична система за въвеждане на клавиатура и мишка, има някои полезни приложения за вас. Много ко...
Полезни инструменти за геймърите на Linux
Ако искате да играете игри на Linux, има вероятност да сте използвали приложения и помощни програми като Wine, Lutris и OBS Studio, за да подобрите иг...
HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...