我希望每个*.dev
主机将被路由到我的流浪机到/var/www/vhosts/*.dev/public
,例如我的本地开发环境project1.dev
位于/var/www/vhosts/project1.dev/public
因此,当我在我的盒子中添加一个新的(子)项目时,我不需要更改我的config.yaml(通过puphpet.com安装Vagrant)并重新加载机器。
在我的计算机上,我将以下内容添加到/private/etc
中的hosts文件中:
192.168.56.101 *.dev
在我的VM上,我将10-default_vhosts80.conf
中的/etc/apache2/sites-enabled
更改为:
# ************************************
# Vhost template in module puppetlabs-apache
# Managed by Puppet
# ************************************
<VirtualHost *:80>
ServerName default
## Vhost docroot
DocumentRoot "/var/www/default"
## Directories, there should at least be a declaration for /var/www/default
<Directory "/var/www/default">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
## Load additional static includes
## Logging
ErrorLog "/var/log/apache2/default_vhost_80_error.log"
ServerSignature Off
CustomLog "/var/log/apache2/default_vhost_80_access.log" combined
## Custom fragment
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/default/$1
</VirtualHost>
<VirtualHost *.dev:80>
ServerName dev
VirtualDocumentRoot /var/www/vhosts/%0
</VirtualHost>
不幸的是,这不起作用。有任何想法吗?我是这个主题的初学者。
我用的是proxy auto configuration file。这适用于Windows,MacOS和Linux。简单,flexible,无需额外的软件。以下示例将所有*.dev
流量路由到您的vagrant box:
function FindProxyForURL(url, host) {
if (dnsDomainIs(host, ".dev")) {
return "PROXY 127.0.0.1:8080";
}
return 'DIRECT';
}
需要时,将127.0.0.1:8080
替换为流浪盒的IP和Web服务器端口。将此文件存储在某处。您可以在本地存储它,也可以让Vagrant-box上的Web服务器托管该文件。
Windows:请参阅here如何在Windows上使用PAC文件。
MacOS:请参阅here如何在MacOS上使用PAC文件。您可以使用file:///Users/username/path/to/proxy.pac
链接到该文件。
Linux:对于linux来说,它取决于,但我确信linux用户可以根据自己的具体情况使用Google。
不幸的是,主机文件不支持使用通配符。您必须手动定义要重定向的每个主机。
此外,您的主机文件位于/etc/hosts
最后,我使用dnsmasq将所有.localdev
域路由到127.0.0.1。请注意,我使用的是.localdev
,而不仅仅是.dev
或.local
,因为这似乎会导致问题(OS X 10.10),因为.dev
是proposed gTLD,.local
使用Apple's Bonjour。
然后我通过创建和启用此站点来配置Apache:
<VirtualHost *:80>
ServerAlias localhost *.localdev #wildcard catch all
VirtualDocumentRoot /hosts/%1/public
UseCanonicalName Off
<Directory "hosts">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
(来自:http://brunodbo.ca/blog/2013/04/26/setting-up-wildcard-apache-virtual-host-wildcard-dns)