Установка Git и HTTP-сервера Apache:
Сначала обновите кеш репозитория пакетов CentOS 8 с помощью следующей команды:
$ sudo dnf makecache
Теперь установите Git, HTTP-сервер Apache и инструменты Apache с помощью следующей команды:
$ sudo dnf установить git httpd httpd-tools
Теперь нажмите Y а затем нажмите
Должны быть установлены Git, Apache и необходимые инструменты Apache.
Настройка HTTP-сервера Apache:
В этом разделе я покажу вам, как настроить сервер Apache для доступа к репозиториям Git по протоколу HTTP.
Сначала создайте новый файл конфигурации / и т.д. / httpd / conf.d / git.conf с помощью следующей команды:
$ sudo vi / и т.д. / httpd / conf.d / git.conf
Теперь добавьте следующие строки в файл конфигурации / и т.д. / httpd / conf.d / git.conf:
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 Нет
Требовать все предоставлено
Дав Он
Индексы опций 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
Теперь перезапустите службу HTTP-сервера Apache с помощью следующей команды:
$ sudo systemctl перезапуск httpd
Также добавьте службу HTTP-сервера Apache при запуске системы CentOS 8 с помощью следующей команды:
$ sudo systemctl включить httpd
Теперь разрешите HTTP-порт (80) через файловую стену с помощью следующей команды:
$ sudo firewall-cmd --add-service = http --permanent
Чтобы изменения вступили в силу, перезагрузите брандмауэр следующим образом:
$ sudo firewall-cmd --reload
Написание сценария для упрощения создания HTTP-доступных репозиториев Git:
Чтобы упростить создание репозиториев Git, доступных по протоколу HTTP, я написал простой сценарий оболочки, который можно использовать для экономии вашего драгоценного времени.
Если вы хотите использовать мой скрипт, создайте новый файл по пути / usr / sbin / git-crate-репо с помощью следующей команды:
$ sudo vi / usr / sbin / git-create-репо
Затем введите следующие строки кода во вновь созданном файле / usr / sbin / git-crate-репо.
#!/ bin / bashGIT_DIR = "/ var / www / git"
REPO_NAME = 1 доллар США
mkdir -p "$ GIT_DIR / $ REPO_NAME.мерзавец "
cd "$ GIT_DIR / $ REPO_NAME.мерзавец "
git init --bare &> / dev / null
коснитесь git-daemon-export-ok
ловушки cp / пост-обновление.образцы крючков / пост-обновление
git config http.receivepack правда
git config http.uploadpack истина
git update-server-информация
chown -Rf apache: apache "$ GIT_DIR / $ REPO_NAME.мерзавец "
echo "Репозиторий Git" $ REPO_NAME "создан в $ GIT_DIR / $ REPO_NAME.мерзавец "
Вот как выглядит окончательный сценарий оболочки. Как только вы закончите, сохраните файл.
Теперь добавьте разрешение на исполняемый файл в сценарий оболочки / usr / sbin / git-create-repo с помощью следующей команды:
$ sudo chmod + x / usr / sbin / git-create-репо
Создайте HTTP-доступные репозитории Git:
Теперь вы можете создать новый репозиторий Git, доступный по протоколу HTTP (назовем его контрольная работа) с помощью следующей команды:
$ sudo git-create-repo тест
Новый репозиторий Git, доступный по протоколу HTTP контрольная работа должен быть упакован.
Доступ к репозиториям 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.
Новый каталог контрольная работа/ должен быть создан в текущем рабочем каталоге bob.
Теперь Боб может перейти к контрольная работа/ каталог следующим образом:
$ cd test /
Теперь Боб создает новый файл сообщение.текст в репозитории Git.
$ echo 'привет от linuxhint' >> сообщение.текст
Боб фиксирует изменения.
$ git add .$ git commit -m 'начальная фиксация'
Боб подтверждает, были ли изменения зафиксированы в репозитории.
$ git log --oneline
Теперь Боб загружает изменения на сервер Git.
$ git push origin
Другой разработчик (скажем, Шовон) кто хочет внести свой вклад в контрольная работа Репозиторий Git также может клонировать контрольная работа репозиторий с сервера Git.
$ git clone http: // 192.168.20.129 / тест.мерзавец
Шовон переходит к контрольная работа/ каталог.
$ cd test /
Шовон находит фиксацию, сделанную Бобом.
Теперь Шовон меняет сообщение.txt файл.
$ echo 'shovon добавил несколько новых текстов' >> сообщение.текст
Фиксирует изменения.
$ git add .$ git commit -m 'добавил новое сообщение'
Шовон подтверждает, зафиксированы ли изменения в репозитории.
$ git log --oneline
Shovon загружает изменения на сервер Git.
$ git push origin
Теперь Боб получает изменения с сервера Git.
$ git pull
Боб находит новую фиксацию.
$ git log --oneline
Боб находит изменения, которые Шовон внес в сообщение.txt файл.
Вот как вы можете использовать репозитории Git с HTTP-сервера Git.
Добавление аутентификации пользователя на Git Server:
Если вы хотите добавить аутентификацию пользователя в серверные репозитории Git или определенные репозитории Git, ознакомьтесь со статьей Настройка Git Server с HTTP в Ubuntu.
Итак, вот как вы настраиваете Git Smart HTTP Server на CentOS 8 и используете репозитории Git с сервера Git. Спасибо, что прочитали эту статью.