Git

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

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

Установка Git и HTTP-сервера Apache:

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

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

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

Кэш репозитория пакетов 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 / и т.д. / apache2 / сайты-доступные / git.conf для Git с помощью следующей команды:

$ sudo nano / etc / apache2 / сайты-доступные / git.conf

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


ServerAdmin веб-мастер @ localhost
 
SetEnv GIT_PROJECT_ROOT / var / www / git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias ​​/ git / / usr / lib / git-core / git-http-backend /
 
Псевдоним / git / var / www / git
 

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

 
DocumentRoot / var / www / html
 

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

 
 
ErrorLog $ APACHE_LOG_DIR / error.бревно
LogLevel предупреждать
CustomLog $ APACHE_LOG_DIR / доступ.журнал комбинированный

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

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

$ sudo a2dissite 000-по умолчанию.conf

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

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

$ sudo a2ensite git.conf

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

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

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

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

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

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

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

#!/ bin / bash
 
GIT_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 update-server-информация
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.мерзавец "
echo "Репозиторий Git" $ REPO_NAME "создан в $ GIT_DIR / $ REPO_NAME.мерзавец "

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

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

$ sudo chmod + x / usr / local / bin / git-create-репо.ш

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

$ sudo git-create-repo.ш тест

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

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

$ ip a

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

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

$ git clone http: // 192.168.21 год.208 / гит / тест.мерзавец

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

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

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

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

$ git push origin

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

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

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

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

$ sudo nano / etc / apache2 / сайты-доступные / git.conf

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


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

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

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

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

$ sudo htpasswd -c / и т.д. / apache2 / git.passwd shovon

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

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

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

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

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

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

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

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

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

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

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

$ sudo nano / etc / apache2 / сайты-доступные / git.conf

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


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

 

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

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

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

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

$ sudo htpasswd -c / и т.д. / apache2 / git.контрольная работа.passwd ИМЯ ПОЛЬЗОВАТЕЛЯ
$ sudo htpasswd -c / и т.д. / apache2 / git.test2.passwd ИМЯ ПОЛЬЗОВАТЕЛЯ

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

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

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

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

5 лучших аркад для Linux
В настоящее время компьютеры - это серьезные машины, используемые для игр. Если вы не можете получить новый рекорд, вы поймете, о чем я. В этом посте ...
Битва за Веснот 1.13.6 Выпущена разработка
Битва за Веснот 1.13.6, выпущенная в прошлом месяце, является шестой разработкой в ​​1.13.x и содержит ряд улучшений, в первую очередь пользовательско...
Как установить League Of Legends на Ubuntu 14.04
Если вы поклонник League of Legends, то это возможность для вас протестировать League of Legends. Обратите внимание, что LOL поддерживается в PlayOnLi...