Как установить подвижный repo для общедоступного сайта на апаче?

Это говорит Вам ту версию 1.17 Perl URI модуль недоступен (yum whatprovides 'perl(URI)').

Что касается httpd-mmn, это обеспечивается httpd пакет; возможно, тот, который Вы установили, является неверной версией (rpm -q --whatprovides httpd-mmn).

Если бы у Вас есть своего рода панель управления, такая как CPanel, установленный затем, это установило бы свой собственный httpd и Perl, означая, что Вы не сможете достигнуть пакеты в основе repo. Говорите со своим поставщиком панели, если это верно.

1
задан 11 January 2013 в 14:20
2 ответа

Вы можете установить на сервере два виртуальных хоста, указывающих на один и тот же корень документа. Один виртуальный хост обслуживает веб-сайт, а другой - ртутный репозиторий с hgweb.wscgi. Таким образом, вы можете настроить аутентификацию внутри второй конфигурации vhost.

<VirtualHost *:80>
  ServerName www.example.com
  ServerAlias example.com 
  DocumentRoot /www/domain/public_html/site/
</VirtualHost>

<VirtualHost *:80>
  ServerName repo.example.com
  DocumentRoot /www/domain/public_html/site/

 # auth setup
 ....
</VirtualHost>

Если вы предпочитаете использовать .htaccess, вы также можете использовать другие имена для файлов htaccess, используя директиву AccessFileName в конфигурации vhost.
Например:

AccessFileName .acl
0
ответ дан 4 December 2019 в 09:27

Обычно я использую SSH вместо hgweb для push и pull. Схема также работает, если вы нажимаете прямо в каталог сайта, однако я не рекомендую этого делать по нескольким причинам. Во-первых, для переноса в небезопасный репозиторий все равно потребуется проверка (это можно легко исправить с помощью входящего перехвата), во-вторых, если вы испортили развертывание, гораздо проще исправить, если каталог вашего сайта отделен от каталога репозитория, кроме того, отдельные каталоги позволяют передавать данные в общий репозиторий без развертывания (например, когда вам нужно переместить коды, которые не готовы к работе, с одной машины разработки на другую машину разработки).

Итак, схема работает так:

  1. Сервер
    1. "чистый" каталог репозитория: общий репозиторий
    2. "живой" каталог сайта: hg pull / path / to / bare (создать запись [paths] для этого в hgrc)
    3. скрипт / псевдоним для извлечения с нуля для жизни и выполнения других задач развертывания
    4. ~ / .ssh / authorized_keys содержит открытый ключ для доступа ssh
  2. Локальный
    1. "локальный" каталог разработки: hg push ssh: // username@example.com / path / to / bare (создайте запись [paths] для этого в hgrc)
    2. ~ / .ssh / rsa_id используется для безопасный push без пароля

Использование SSH также будет более безопасным, чем использование hgweb, поскольку процесс Apache не должен иметь возможность писать ни в «активный» каталог сайта, ни в «чистый» каталог репозитория. Проталкивание через SSH означает, что доступ на запись в эти каталоги требуется только пользователю SSH.

Без чистого репозитория это выглядит немного проще:

  1. Сервер
    1. "живой" каталог сайта
    2. ~ / .ssh / authorized_keys содержит открытый ключ для доступа по ssh
  2. Локальный
    1. "локальный" каталог разработки: hg push ssh: // username@example.com / path / to / live (создайте запись [paths] для этого в hgrc)
    2. ~ / .ssh / rsa_id используется для безопасный push без пароля

, но вы теряете упомянутые выше преимущества.

0
ответ дан 4 December 2019 в 09:27

Теги

Похожие вопросы