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

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

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

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

$ sudo apt update

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

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

$ sudo apt install git apache2 apache2-utils

Теперь нажмите Y , а затем нажмите , чтобы подтвердите установку.

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

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

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

$ sudo a2enmod env cgi alias rewrite

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

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

$ sudo mkdir/var/www/git

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

$ sudo nano/etc/apache2/sites-available/git.conf

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

ServerAdmin webmaster @ localhost

SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAl ias/git//usr/lib/git-core/git-http-backend/

Псевдоним/git/var/www/git

Параметры + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride None
Требовать все предоставленные

DocumentRoot/var/www/html

Параметры индексов FollowSymLinks MultiViews
AllowOverride None
Требовать все предоставленные

ErrorLog $ {APACHE_LOG_DIR}/error. log
LogLevel warn
CustomLog $ {APACHE_LOG_DIR}/access.log в сочетании

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

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

$ sudo a2dissite 000-default.conf

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

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

$ sudo a2ensite git.conf

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

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

$ sudo systemctl restart apache2

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

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

$ sudo nano/usr/local/bin/git-create-repo.sh

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

#!/bin/bash

GIT_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
touch git-daemon-export-ok
cp hooks/post-update.sample hooks/post-update
git config http.receivepack true
git update-server-info
chown -Rf www-data: www-data «$ {GIT_DIR}/$ {REPO_NAME} .git»
echo «Репозиторий Git ‘ $ {REPO_NAME} ‘, созданный в $ {GIT_DIR}/$ {REPO_NAME} .git «

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

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

$ sudo chmod + x/usr/local/bin/git-create-repo.sh

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

$ sudo git-create-repo.sh test

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

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

$ ip a

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

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

$ git clone http://192.168.21.208/git/test.git

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

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

$ cd test/
$ echo «Hello World»> привет
$ git add.
$ git commit -m ‘начальная фиксация’

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

$ git push origin

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

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

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

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

$ sudo nano/etc/apache2/sites-available/git.conf

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

AuthType Basic
AuthName «Git Verification»
AuthUserFile/etc/apache2/git.passwd
Require valid-user

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

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

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

$ sudo htpasswd -c/etc/apache2/git. passwd shovon

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

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

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

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

$ sudo systemctl restart apache2

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

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

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

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

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

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

$ sudo nano/etc/apache2/sites-available/git.conf

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

AuthType Basic
AuthName «Git Проверка «
AuthUserFile/etc/apache2/git.test.passwd
Require valid-user

AuthType Basic
AuthName «Git Verification»
AuthUserFile/etc/apache2/git.test2.passwd
Требовать действительного пользователя

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

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

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

$ sudo htpasswd -c/etc/apache2/git.test.passwd ИМЯ ПОЛЬЗОВАТЕЛЯ
$ sudo htpasswd -c/etc /apache2/git.test2. passwd ИМЯ ПОЛЬЗОВАТЕЛЯ

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

$ sudo systemctl restart apache2

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

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

Оцените статью
nanomode.ru
Добавить комментарий