Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная
  2. Pro Git
  3. Git на сервере

Открытый доступ

Что если вы хотите иметь анонимный доступ к вашему проекту на чтение? Возможно вместо размещения внутреннего закрытого проекта, вы хотите разместить проект с открытым исходным кодом. Или, может быть, у вас есть автоматизированные серверы сборки или серверы непрерывной интеграции, которые часто изменяются, и вы не хотите постоянно перегенерировать SSH-ключи, а вы просто хотите добавить анонимный доступ на чтение. Вероятно, наиболее простой способ для небольших конфигураций ― запустить статический веб-сервер, указав в качестве корневого каталога для документов каталог, в котором расположены ваши репозитории Git, и разрешив хук post-update, как было показано в первой части этой главы. Давайте продолжим работу с предыдущего примера. Допустим, ваши репозитории расположены в каталоге /opt/git, и сервер Apache запущен на вашей машине. Повторюсь, вы можете использовать любой веб-сервер, но в качестве примера мы покажем несколько основных конфигураций Apache, которые покажут основную идею что нужно сделать. Для начала вам следует включить хук: $ cd project.git $ mv hooks/post-update.sample hooks/post-update $ chmod a+x hooks/post-update Если вы используете версию Git ниже 1.6, то команда mv не нужна ― добавление суффикса .sample к именам примеров хуков началось только недавно. Что делает хук post-update? Обычно он выглядит так: $ cat .git/hooks/post-update #!/bin/sh exec git-update-server-info Это означает, что когда вы отправляете что-то с помощью git push на сервер по SSH, Git будет запускать эту команду, чтобы обновить файлы необходимые для скачивания по HTTP. Затем, вы должны добавить запись VirtualHost в конфигурацию вашего Apache с корневым каталогом документов в каталоге с вашими проектами Git. Здесь мы подразумеваем, что ваш DNS сервер настроен на отправку *.gitserver на машину, на которую вы используете, чтобы запустить все это: ServerName git.gitserver DocumentRoot /opt/git Order allow, deny allow from all Вам также понадобится установить Unix-группу для каталога /opt/git в www-data, чтобы ваш веб-сервер получил доступ на чтение этих каталогов, поскольку (по умолчанию) Apache запускает CGI-сценарии от имени такого пользователя: $ chgrp -R www-data /opt/git После перезапуска Apache, вы должны получить возможность склонировать ваши репозитории из этого каталога указывая их в URL: $ git clone http://git.gitserver/project.git Таким образом, вы можете настроить доступ на чтение по HTTP к любому из ваших проектов для значительного количества пользователей за несколько минут. Другой простой способ дать открытый неаутентифицируемый доступ ― использовать Git-демон, однако это требует запуска процесса демона. Мы рассмотрим этот вариант в следующем разделе, если вы предпочитаете этот вариант. Pro Git

Перекрёстные ссылки книги для Открытый доступ

  • Настраиваем сервер
  • Вверх
  • GitWeb

Book navigation

  • Введение
  • Основы Git
  • Ветвление в Git
  • Git на сервере
    • Протоколы
    • Установка Git на сервер
    • Создание публичного SSH-ключа
    • Настраиваем сервер
    • Открытый доступ
    • GitWeb
    • Gitosis
    • Gitolite
    • Git-демон
    • Git-хостинг
    • Заключение
  • Распределённый Git
  • Инструменты Git

Последние материалы

  • Приложение scanimage
    12 hours 13 minutes ago
  • Утилита sensors
    4 days 12 hours ago
  • Сканер Rkhunter
    1 week 5 days ago
  • Программа resize2fs
    2 weeks 3 days ago
  • Аудиопроигрыватель QMMP
    3 weeks 2 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru