Пакеты 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 / bashGIT_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. Спасибо, что прочитали эту статью.