Apache – dynamic子域名

我正面临着build立我的开发环境的问题。 我正在尝试将所有项目作为子域名进行服务。

这里是我的局域网的结构:

192.168.1.15 - PC 192.168.1.16 - Laptop 192.168.1.17 - Laptop 192.168.1.20 - Dev Server 

我已经使用mod_vhost_alias Apache模块和dnsmasq DNS服务器成功configuration了Apachedynamic子域。

这里是我的Apache虚拟主机的configuration:

 <VirtualHost *:80> VirtualDocumentRoot "/var/www/html/%1/web/" <Directory "/var/www/html/%1/web"> AllowOverride All Allow from All </Directory> </VirtualHost> 

/etc/dnsmasq.conf文件

 listen-address=127.0.0.1 address=/.dev/127.0.0.1 

如您所见,我可以dynamic访问位于/var/www/html/ ,而无需创build新的虚拟主机或编辑/etc/hosts文件。 一切正常,真正加快了开发进程。 我应该说,在我将开发服务器迁移到单独的机器之前,它正在工作。

有什么问题? 如何使本地networking中的这个configuration工作? (我不需要从互联网上访问服务器)。

我已经添加了一个条目到我的电脑上的Windows主机file指向192.168.1.20 IP地址到dev主机名,但我不知道如何使子域工作。

在每台机器上编辑主机文件以添加要parsing的子域名可能是最容易的。 hosts文件的格式非常简单

 ip.add.re.ss hostname.tld sub1.hostname.tld sub2.hostname.tld 

或ip.add.re.ss hostnname.tld ip.add.re.ss sub.hostname.tld

所以你可以有

 192.168.1.20 mydev.lan test.mydev.lan deploy.mydev.lan 

要么

 192.168.1.20 mydev.lan 192.168.1.20 test.mydev.lan deply.mydev.lan 

这里要注意的是你得到主机名的第一个匹配被返回。

或者,您可以允许dnsmasq侦听服务器的IP地址,并将其设置为其他计算机的DNS服务器。