Установка 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 / доступ.журнал комбинированный
Окончательный файл конфигурации выглядит следующим образом. Теперь сохраните файл конфигурации, нажав
Теперь отключите конфигурацию сайта 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 / 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 update-server-информация
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.мерзавец "
echo "Репозиторий Git" $ REPO_NAME "создан в $ GIT_DIR / $ REPO_NAME.мерзавец "
После ввода этих строк сценарий оболочки должен выглядеть следующим образом. Теперь сохраните файл, нажав
Теперь добавьте разрешение на выполнение сценарию оболочки с помощью следующей команды:
$ 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.пароль это файл базы данных пользователей.
Окончательный файл конфигурации должен выглядеть следующим образом. Теперь сохраните файл, нажав
Теперь создайте новый файл базы данных пользователей / и т.д. / 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, а
Окончательный файл конфигурации должен выглядеть следующим образом. Теперь сохраните файл конфигурации, нажав
Теперь вы можете создать необходимые пользовательские базы данных следующим образом:
$ 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. Спасибо, что прочитали эту статью.