Назад | Перейти на главную страницу

Один сервер разработки с Apache с несколькими виртуальными хостами?

Допустим, у меня будет уникальный код совместного использования сервера разработки для нескольких разработчиков. Код для каждого разработчика будет в его домашнем каталоге под sources так что в основном это будет что-то вроде ~/<developer_name>/sources. На этом сервере работает Apache 2.4.x.

Мне нужно, чтобы каждый разработчик мог получить доступ к своему коду, например, <developer_name>.domain.com. Конечно developer_name в URL будет соответствовать имени на /home каталог.

Мое решение - виртуальный хост для каждого разработчика в конфигурации Apache, есть ли лучшее решение, и я не знаю?

У нас аналогичная установка.

Единственная загвоздка в том, что вам нужно иметь целый поддомен для своего сервера. Итак, вместо jdoe.domain.com и bsmith.domain.com у вас будут jdoe.dev.domain.com и bsmith.dev.domain.com. Вы можете почти думать о dev.domain.com как о сервере.

Возможно, вы захотите сделать что-то вроде этого:

Модуль Apache

Убедитесь, что vhost_alias модуль включен.

# a2enmod vhost_alias

Конфигурация Apache

(ключ VirtualDocumentRoot директива)

<VirtualHost *:80>
  ServerName dev.domain.com
  ServerAlias dev.domain.com *.dev.domain.com
  VirtualDocumentRoot /home/%1/sources
</VirtualHost>

Запись DNS

Вам нужна запись DNS, чтобы указать dev.domain.com и все, что находится под ним (* .dev.domain.com), на ваш сервер разработки.

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

Запись BIND в зоне domain.com может выглядеть так:

*.dev     A       10.1.1.1

Вам нужно, чтобы у них были собственные доменные имена? Если нет, то это сделает встроенный mod_userdir. Ваши разработчики будут в / rel = "nofollow noreferrer"> http://developers.domain.com/~ <developer_name> / (например, / ~ bob /). Вы просто определили бы UserDir как «источники» (по умолчанию public_html).

Конфигурация обычно находится в httpd.conf, но вам понадобится что-то вроде:

LoadModule userdir_module modules/mod_userdir.so
<IfModule mod_userdir.c>
    UserDir sources
</IfModule>

У вас также может быть UserDir disable что вам также придется прокомментировать.