Допустим, у меня будет уникальный код совместного использования сервера разработки для нескольких разработчиков. Код для каждого разработчика будет в его домашнем каталоге под 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
что вам также придется прокомментировать.