Пакетите 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/bashGIT_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. Благодаря, че прочетохте тази статия.