我想设置我的本地开发机器,以便任何对*的请求。Local被重定向到localhost。这个想法是,当我开发多个站点时,我只需向Apache添加名为site1的vhosts。地方,site2。让它们都解析到localhost,而Apache则相应地服务于不同的站点。
我用的是Windows XP。
我试着加上
127.0.0.1 *.local
到我的c:\windows\system32\drivers\etc\hosts文件,也试过:
127.0.0.1 .local
这两种方法似乎都不管用。
我知道我可以在不同的端口号上设置它们,但这是一种痛苦,因为很难记住哪个端口是哪个端口。
我不想设置本地DNS服务器,有什么建议吗?
我使用DNSChef来做这个。
https://thesprawl.org/projects/dnschef/
你必须下载应用程序,在Linux或Mac中,你需要python来运行它。Windows有自己的exe。
例如,您必须创建一个包含dns条目的ini文件
[A]
*.google.com=192.0.2.1
*.local=127.0.0.1
*.devServer1.com=192.0.2.3
然后,您必须以管理员权限启动dns应用程序
sudo python dnschef.py --file myfile.ini -q
或者在Windows中
runas dnschef.exe --file myfile.ini -q
最后,您需要设置为您的本地主机环境(网络,接口,DNS或类似或在linux /etc/resolv.conf)的唯一DNS。
就是这样
要回答您的问题,您不能在Windows下的hosts文件中使用通配符。
但是,如果您只想更改hosts文件以使新站点工作....你可以这样配置你的Apache,你不需要一直编辑它的配置:
http://postpostmodern.com/instructional/a-smarter-mamp/
基本上是基于我的设置的一个快速总结,在apache.conf文件中添加以下内容:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
NameVirtualHost *:80
<Directory "/xampp/sites">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
VirtualDocumentRoot c:/xampp/sites/%-1/%-2+/
</VirtualHost>
这允许我添加这样的条目:
127.0.0.1 test.dev
然后创建目录c:\xampp\sites\dev\test,并将必要的文件放在那里,它就可以工作了。
另一种选择是在apache.conf中使用<Directory>标记,并引用http://localhost/project/中的页面。
您可以使用echoipdns (https://github.com/zapty/echoipdns)。
通过运行echoipdns local,所有对.local子域的请求都被重定向到127.0.0.1,因此任何具有xyz. local子域的域。本地etc将解析为127.0.0.1。您可以使用任何其他后缀,也只是用您想要的名称替换local。
Echoipdns甚至更强大,当你想使用你的url从其他机器在网络中,你仍然可以使用它零配置。
例如,如果你的机器ip地址是192.168.1.100,你现在可以使用一个域名xyz.192-168-1-100。本地的,将始终解析为192.168.1.100。这个魔术是由echoipdns通过查看域名的第二部分中的ip地址,并在DNS查询中返回相同的ip地址来完成的。您必须在要访问远程系统的机器上运行echoipdns。
echoipdns也可以设置为一个独立的DNS代理,因此,只要指向这个DNS,您现在就可以使用所有上述优点,而无需每次都运行一个特殊的命令,甚至可以从移动设备使用它。
因此,从本质上讲,这简化了本地和团队环境中基于通配符域的DNS开发。
echoipdns适用于Mac、Linux和Windows。
注:我是echoipdns的作者。
配置nginx配置自动子域与丙烯酸DNS代理
你的nginx sites文件夹的Auto.conf文件
server {
listen 80;
server_name ~^(?<branch>.*)\.example\.com;
root /var/www/html/$branch/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_log /var/log/nginx/$branch.error.log error;
sendfile off;
client_max_body_size 100m;
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
添加到Acrylic hosts文件127.0.0.1 example.com *.example.com并重新启动Acrylic服务。
$branch -你的子域名。
设置代替根/var/www/html/$branch/public;您的项目路径