Настройте Git Server с HTTP в Ubuntu

Configure Git Server With Http Ubuntu



Если вы хотите настроить HTTP-сервер Git для работы с репозиториями Git в частном порядке, эта статья для вас. В этой статье я покажу вам, как настроить HTTP-сервер Git Smart в Ubuntu с HTTP-сервером Apache. Итак, приступим.

Пакеты Git и Apache доступны в официальном репозитории пакетов Ubuntu. Таким образом, вы можете легко установить его с помощью диспетчера пакетов APT.







Сначала обновите кеш репозитория пакетов APT с помощью следующей команды:



$судоподходящее обновление



Кэш репозитория пакетов APT должен быть обновлен.





Теперь установите Git и Apache с помощью следующей команды:



$судоподходящийустановить идтиapache2 apache2-утилит

Теперь нажмите А ТАКЖЕ а затем нажмите для подтверждения установки.

Должны быть установлены Git и Apache.

Настройка HTTP-сервера Apache для Git:

Теперь включите Apache mod_env , mod_cgi , mod_alias а также mod_rewrite модули с помощью следующей команды:

$судоa2enmodenvcgiпсевдонимпереписать

Должны быть включены необходимые модули Apache.

Теперь создайте новый каталог / var / www / git для хранения всех репозиториев Git с помощью следующей команды:

$судо mkdir /куда/www/идти

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

$судо нано /так далее/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 Нет
Требовать все предоставлено
Каталог>


Журнал ошибок$ {APACHE_LOG_DIR}/журнал ошибок
LogLevel предупреждать
CustomLog$ {APACHE_LOG_DIR}/access.log объединен
VirtualHost>

Окончательный файл конфигурации выглядит следующим образом. Теперь сохраните файл конфигурации, нажав + Икс с последующим А ТАКЖЕ а также .

Теперь отключите конфигурацию сайта Apache по умолчанию с помощью следующей команды:

$судоa2dissite 000-default.conf

Конфигурация сайта по умолчанию должна быть отключена.

Теперь включите конфигурацию сайта Git с помощью следующей команды:

$судоa2ensite git.conf

Должна быть включена конфигурация сайта Git.

Теперь перезапустите HTTP-сервер Apache с помощью следующей команды:

$судоsystemctl перезапустить apache2

Чтобы загрузить новый репозиторий Git, доступный через HTTP-сервер Apache, вам нужно будет выполнить несколько команд. Вы же не хотите делать одно и то же снова и снова, просто чтобы создать новый репозиторий Git. Итак, я решил написать для этой цели сценарий оболочки.

Сначала создайте новый сценарий оболочки /usr/local/bin/git-create-repo.sh с помощью следующей команды:

$судо нано /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 --просто &> /разработчик/нулевой
трогатьgit-демон-экспорт-ок
cpкрючки/post-update.sample хуки/пост-обновление
git confighttp.receivepackправда
git update-server-информация
Chown -Rfwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.идти'
выбросил 'Репозиторий Git'$ {REPO_NAME}'создано в$ {GIT_DIR}/$ {REPO_NAME}.идти'

После ввода этих строк сценарий оболочки должен выглядеть следующим образом. Теперь сохраните файл, нажав + Икс с последующим А ТАКЖЕ а также .

Теперь добавьте разрешение на выполнение сценарию оболочки с помощью следующей команды:

$судо chmod+ х/usr/местный/являюсь/git-create-repo.sh

Теперь создайте новый репозиторий Git тестовое задание в корне проекта Git / var / www / git с помощью git-create-repo.sh сценарий оболочки следующим образом:

$судоgit-create-repo.shтестовое задание

Репозиторий Git тестовое задание должен быть создан.

Для доступа к репозиторию Git вам понадобится IP-адрес HTTP-сервера Git.

$ipк

Как видите, в моем случае IP-адрес 192.168.21.208 . Для вас все будет иначе. С этого момента замените его своим.

Теперь вы можете клонировать тестовое задание Репозиторий Git следующим образом:

$git clonehttp://192.168.21.208/идти/test.go

Репозиторий Git тестовое задание следует клонировать.

Теперь давайте добавим новую фиксацию в тестовое задание Репозиторий Git.

$CDтестовое задание/
$выбросил 'Привет, мир' >Привет
$git добавить.
$git commit 'начальная фиксация'

Теперь загрузите изменения в тестовое задание Репозиторий Git на сервере выглядит следующим образом:

$git pushисточник

Как видите, изменения загружаются нормально.

Настройка аутентификации пользователя:

В этом разделе я покажу вам, как настроить аутентификацию пользователей в репозиториях Git на сервере.

Сначала отредактируйте git.conf файл конфигурации сайта следующим образом:

$судо нано /так далее/apache2/сайты-доступные/git.conf

Теперь добавьте следующий раздел в файл конфигурации.

<LocationMatch/идти/.*.идти>
AuthType Basic
AuthName'Проверка Git'
AuthUserFile/так далее/apache2/git.passwd
Требовать действительного пользователя
LocationMatch>

Здесь, /etc/apache2/git.passwd это файл базы данных пользователей.

Окончательный файл конфигурации должен выглядеть следующим образом. Теперь сохраните файл, нажав + Икс с последующим А ТАКЖЕ а также .

Теперь создайте новый файл базы данных пользователей /etc/apache2/git.passwd и добавьте нового пользователя (скажем, Шовон ) в файл базы данных следующим образом:

$судоhtpasswd-c /так далее/apache2/git.passwd shovon

Теперь введите новый пароль для нового пользователя и нажмите .

Введите тот же пароль еще раз и нажмите .

Пара пользователь-пароль должна быть добавлена ​​в базу данных.

Теперь перезапустите HTTP-сервер Apache с помощью следующей команды:

$судоsystemctl перезапустить apache2

Теперь, если вы попытаетесь клонировать тестовое задание репозиторий снова, вам будет предложено пройти аутентификацию, как вы можете видеть на скриншоте ниже.

После аутентификации с использованием имени пользователя и пароля вы сможете получить доступ к репозиторию Git.

Даже когда вы пытаетесь отправить или получить данные из репозитория Git, вам также будет предложено ввести имя пользователя и пароль.

После аутентификации будет работать push / pull.

Вы также можете установить разные базы данных пользователей для разных репозиториев Git. Это может быть полезно для проектов, в которых много людей работают вместе в одном репозитории Git.

Чтобы установить аутентификацию на уровне репозитория Git, сначала отредактируйте git.conf файл конфигурации сайта следующим образом:

$судо нано /так далее/apache2/сайты-доступные/git.conf

Теперь добавьте следующие строки в файл конфигурации.

<Место нахождения/идти/test.go>
AuthType Basic
AuthName'Проверка Git'
AuthUserFile/так далее/apache2/git.test.passwd
Требовать действительного пользователя
Место нахождения>

<Место нахождения/идти/test2.git>
AuthType Basic
AuthName'Проверка Git'
AuthUserFile/так далее/apache2/git.test2.passwd
Требовать действительного пользователя
Место нахождения>

Для каждого репозитория Git тестовое задание а также test2 , к раздел определен. Для каждого репозитория Git используется отдельный файл базы данных пользователей.

Окончательный файл конфигурации должен выглядеть следующим образом. Теперь сохраните файл конфигурации, нажав + Икс с последующим А ТАКЖЕ а также .

Теперь вы можете создать необходимые пользовательские базы данных следующим образом:

$судоhtpasswd-c /так далее/apache2/git.test.passwd ИМЯ ПОЛЬЗОВАТЕЛЯ
$судоhtpasswd-c /так далее/apache2/git.test2.passwd ИМЯ ПОЛЬЗОВАТЕЛЯ

По завершении перезапустите HTTP-сервер Apache с помощью следующей команды:

$судоsystemctl перезапустить apache2

Теперь у каждого репозитория Git должен быть собственный набор пользователей, которые могут получить к нему доступ.

Итак, вот как вы настраиваете Git Server с Apache HTTP Server в Ubuntu. Спасибо, что прочитали эту статью.