我正面临着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服务器。