Инсталиране на Git и Apache HTTP сървър:
Първо актуализирайте кеша на хранилището на CentOS 8 със следната команда:
$ sudo dnf makecache
Сега инсталирайте Git, Apache HTTP сървър и Apache инструменти със следната команда:
$ sudo dnf install git httpd httpd-tools
Сега натиснете Y и след това натиснете
Трябва да бъдат инсталирани Git, Apache и необходимите Apache инструменти.
Конфигуриране на Apache HTTP сървър:
В този раздел ще ви покажа как да конфигурирате сървъра на Apache за достъп до Git хранилища през HTTP протокол.
Първо създайте нов конфигурационен файл / etc / httpd / conf.г / git.конф със следната команда:
$ sudo vi / etc / httpd / conf.г / git.конф
Сега добавете следните редове към конфигурационния файл / etc / httpd / conf.г / git.конф:
SetEnv GIT_PROJECT_ROOT / var / www / git
SetEnv GIT_HTTP_EXPORT_ALL
DocumentRoot / var / www / git
ScriptAlias / / usr / libexec / git-core / git-http-backend /
Опции + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride Няма
Изискване на всички предоставени
Dav On
Опции Индекси FollowSymLinks
AllowOverride Няма
Изискване на всички предоставени
Окончателният конфигурационен файл трябва да изглежда както следва. Сега запазете конфигурационния файл.
Сега създайте GIT_PROJECT_ROOT директория / var / www / git със следната команда:
$ sudo mkdir / var / www / git
Сега конфигурирайте SELinux за / var / www / git директория със следната команда:
$ sudo semanage fcontext -m -t httpd_sys_rw_content_t"/ var / www / git (/.*)?"
За да влязат в сила промените в SELinux, изпълнете следната команда:
$ sudo restorecon -Rv / var / www / git
Сега рестартирайте услугата на Apache HTTP сървър със следната команда:
$ sudo systemctl рестартирайте httpd
Освен това добавете услугата Apache HTTP сървър към стартирането на системата CentOS 8 със следната команда:
$ sudo systemctl активира httpd
Сега разрешете HTTP порта (80) през файловата стена със следната команда:
$ sudo firewall-cmd --add-service = http --permanent
За да влязат в сила промените, презаредете защитната стена, както следва:
$ sudo firewall-cmd --reload
Писане на скрипт за създаване на HTTP достъпни Git хранилища по-лесно:
За да улесня създаването на HTTP достъпни Git хранилища, написах прост скрипт за черупки, който можете да използвате, за да спестите много от ценното си време.
Ако искате да използвате моя скрипт, създайте нов файл в пътя / usr / sbin / git-crate-repo със следната команда:
$ sudo vi / usr / sbin / git-create-repo
След това въведете следните редове кодове в новосъздадения файл / usr / sbin / git-crate-repo.
#!/ bin / bashGIT_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 config http.uploadpack вярно
git update-server-info
chown -Rf apache: apache "$ GIT_DIR / $ REPO_NAME.git "
echo "Git хранилище '$ REPO_NAME' създадено в $ GIT_DIR / $ REPO_NAME.git "
Ето как изглежда финалният скрипт на черупката. След като приключите, запазете файла.
Сега добавете изпълнително разрешение към скрипта на черупката / usr / sbin / git-create-repo със следната команда:
$ sudo chmod + x / usr / sbin / git-create-repo
Създаване на HTTP достъпни Git хранилища:
Сега можете да създадете ново HTTP достъпно Git хранилище (нека го наречем тест) със следната команда:
$ sudo git-create-repo тест
Ново достъпно HTTP хранилище на Git тест трябва да се изчисли.
Достъп до Git хранилищата от Git сървъра:
За да получите достъп до Git хранилищата, които сте създали на вашия CentOS 8 Git сървър, имате нужда от този IP адрес на CentOS 8 Git сървъра и името на Git хранилището.
Администраторът на Git сървър може да намери IP адреса на Git сървъра със следната команда:
$ nmcliВ моя случай IP адресът е 192.168.20.129. За вас ще е различно. Така че, не забравяйте да го замените от сега нататък.
След като администраторът на Git сървъра намери IP адреса, той / тя може да го изпрати на потребителите / разработчиците, които ще използват Git хранилища, хоствани на Git сървъра. Тогава потребителите / разработчиците могат да получат достъп до желаните от тях Git хранилища.
Например, ако Боб иска да клонира хранилището на Git тест от Git сървъра, той може да направи това, както следва:
$ git clone http: // 192.168.20.129 / тест.git
Хранилището на Git тест трябва да се клонира от Git сървъра.
Нова директория тест/ трябва да се създаде в текущата работна директория на bob.
Сега bob може да навигира до тест/ директория, както следва:
$ cd тест /
Сега bob създава нов файл съобщение.текст в хранилището на Git.
$ echo 'здравей от linuxhint' >> съобщение.текст
Боб извършва промените.
$ git add .$ git commit -m 'първоначален ангажимент'
Боб потвърждава дали промените са били ангажирани в хранилището.
$ git log --oneline
Сега bob качва промените на Git сървъра.
$ git push origin
Друг разработчик (да кажем шовон), който иска да допринесе за тест Git хранилището също може да клонира тест хранилище от Git сървъра.
$ git clone http: // 192.168.20.129 / тест.git
Шовон навигира към тест/ директория.
$ cd тест /
Шовън намира ангажимента, който е направил Боб.
Сега, shovon променя съобщението.txt файл.
$ echo 'shovon добави някои нови текстове' >> съобщение.текст
Фиксира промените.
$ git add .$ git commit -m 'добави ново съобщение'
Shovon потвърждава дали промените са били ангажирани в хранилището.
$ git log --oneline
Shovon качва промените на Git сървъра.
$ git push origin
Сега bob изтегля промените от Git сървъра.
$ git pull
Боб намира новия ангажимент.
$ git log --oneline
Боб намира промените, които Shovon направи в съобщението.txt файл.
Ето как можете да използвате Git хранилища от Git HTTP сървъра.
Добавяне на удостоверяване на потребителя към Git сървър:
Ако искате да добавите удостоверяване на потребителя към Git хранилища в целия сървър или конкретни хранилища на Git, проверете статията Конфигуриране на Git сървър с HTTP в Ubuntu.
И така, вие конфигурирате Git Smart HTTP сървър на CentOS 8 и използвате Git хранилища от Git сървъра. Благодаря, че прочетохте тази статия.