一个开发服务器与Apache与多个虚拟主机?

让我们说,我将有一个独特的开发服务器共享代码为多个开发人员。 每个开发人员的代码将在sources代码的主目录下,所以基本上就像~/<developer_name>/sources 。 该服务器正在运行Apache 2.4.x.

我需要每个开发者都可以通过<developer_name>.domain.com访问他们的代码。 当然,URL上的developer_name将匹配/home目录上的名称。

我的解决scheme是Apacheconfiguration上每个开发人员的虚拟主机,有没有更好的解决scheme,我不知道?

我们有一个类似的设置。

唯一的问题是你需要为你的服务器build立一个完整的子域名。 所以,而不是jdoe.domain.com&bsmith.domain.com,你将有jdoe.dev.domain.com和bsmith.dev.domain.com。 你几乎可以把“dev.domain.com”当作服务器。

你可能会想要做这样的事情:

Apache模块

确保vhost_alias模块已启用。

 # a2enmod vhost_alias 

Apacheconfiguration

(关键是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”子域名,则必须为每个开发者创build一个DNS条目。

domain.com区域中的BINDlogging可能如下所示:

 *.dev A 10.1.1.1 

你需要他们有自己的域名? 如果没有,那么将会有内置的mod_userdir。 您的开发人员将在http://developers.domain.com/~<developer_name&gt; /(如/〜bob /)。 您只需将UserDir定义为“来源”(默认为public_html)即可。

configuration通常在httpd.conf中,但你只需要这样的东西:

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

你也可能有一个UserDir disable ,你也必须注释掉。