Как установить HTTP Git Server на Ubuntu 20.04 LTS | Ubuntu 18.08
В этом руководстве мы покажем вам, как установить HTTP Git Server на Ubuntu 20.04 LTS. Для тех из вас, кто не знал, HTTP Git Server — это проект с открытым исходным кодом, который использует веб-сервер Nginx для обслуживания репозиториев Git через вашу локальную сеть (LAN). HTTP Git Server на удивление прост в настройке и управлении.
В этой статье предполагается, что у вас есть хотя бы базовые знания о Linux, вы знаете, как использовать оболочку, и, самое главное, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo
‘ к командам, чтобы получить привилегии root. Я покажу вам пошаговую установку HTTP Git Server на Ubuntu 20.04 (Focal Fossa). Вы можете следовать тем же инструкциям для Ubuntu 18.04, 16.04 и любого другого дистрибутива на основе Debian, такого как Linux Mint.
Установите HTTP Git Server на Ubuntu 20.04 LTS Focal Fossa
Шаг 1. Сначала убедитесь, что все ваши системные пакеты обновлены, выполнив следующие apt
команды в терминале.
sudo apt update sudo apt upgrade sudo apt install fcgiwrap apache2-utils unzip
Шаг 2. Установка Nginx на Ubuntu 20.04.
Nginx доступен в стандартных репозиториях Ubuntu. Чтобы установить его, выполните следующую команду:
sudo apt install nginx
После завершения установки запустите команды, чтобы Nginx автоматически запускался при запуске вашего сервера:
sudo systemctl stop nginx sudo systemctl start nginx sudo systemctl enable nginx
Настройка брандмауэра.
Между тем, вам необходимо убедиться, что ваш брандмауэр настроен на разрешение трафика через порты HTTP (80) и HTTPS (443). Nginx регистрирует себя как службу с помощью ufw
:
sudo ufw allow in "Nginx Full"
Шаг 3. Установка Git на Ubuntu 20.04.
Выполните следующую команду ниже, чтобы установить Git в вашей системе Ubuntu:
sudo apt install git
Подтвердите установку Git:
git --version
Шаг 4. Создайте репозиторий Git.
Теперь мы создаем каталог для хранения репозитория Git:
mkdir /var/www/html/infoit-repo
Затем измените каталог на и создайте другой каталог для пользователей:infoit-repo
cd /var/www/html/myrepo mkdir user.git
Теперь инициализируем репозиторий командой:
cd user.git git --bare init
Затем обновите Git Server с помощью команды:
git update-server-info
Дайте репозиторию правильное право собственности с помощью команды:
chown -R www-data:www-data /var/www/html/infoit-repo chmod -R 755 /var/www/html/infoit-repo
После этого создайте пользователя с именем user и установите пароль для ограничения доступа к репозиторию git с использованием базовой HTTP-аутентификации:
htpasswd -c /var/www/html/infoit-repo/htpasswd user
Шаг 5. Настройте Nginx для обслуживания репозитория Git.
Теперь мы создаем файл конфигурации виртуального хоста Nginx для обслуживания репозитория Git:
nano /etc/nginx/conf.d/git.conf
Добавьте следующие строки:
server { listen 80; root /var/www/html/infoit-repo; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; server_name git.your-domain.com; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } location ~ (/.*) { client_max_body_size 0; auth_basic "Git Login"; auth_basic_user_file "/var/www/html/infoit-repo/htpasswd"; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param GIT_PROJECT_ROOT /var/www/html/infoit-repo; fastcgi_param REMOTE_USER $remote_user; fastcgi_param PATH_INFO $1; fastcgi_pass unix:/var/run/fcgiwrap.socket; } }
Сохраните и закройте файл, затем перезапустите службу Nginx, чтобы применить изменения:
nginx -t sudo systemctl restart nginx
Шаг 6. Подключитесь к репозиторию Git с клиента.
Сначала создайте каталог для вашего проекта с помощью следующей команды:
mkdir my-project
Затем перейдите в каталог вашего проекта и инициализируйте Git с помощью команды:
cd my-project git init
Мы рекомендуем настроить ваш Git для фиксации электронной почты и имени пользователя. Для этого выполните следующие команды:
git config --global user.email "user@your-domain.com" git config --global user.name "user"
После этого добавьте свой удаленный репозиторий Git с помощью следующей команды:
git remote add origin http://user@git.your-domain.com/user.git
Затем создайте каталог с именем dev и добавьте в него файл:
mkdir dev echo "This is my first my application" > dev/file
Теперь мы можем добавить эти файлы в git с помощью команды:
git add .
Зафиксируйте изменения командой:
git commit -a -m "Add files and directories"
Затем отправьте все наши вновь созданные каталоги и файлы на сервер с помощью команды:
git push origin master
После подключения вы получите следующий вывод:
Counting objects: 8, done. Writing objects: 100% (4/4), 512 bytes | 346.00 KiB/s, done. Total 8 (delta 0), reused 0 (delta 0) To http://git.your-domain.com/user.git * [new branch] master -> master
Вы также можете загрузить свой репозиторий напрямую с сервера Git, используя следующую команду:
git clone http://user@git.your-domain.com/user.git
Поздравляем! Вы успешно установили HTTP Git Server. Спасибо за использование этого руководства по установке HTTP Git Server в вашей системе Ubuntu 20.04 LTS Focal Fossa. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт Git .