(我读过很多关于MAMP中vhosts的StackOverflow文章,但没有一篇能解决这个问题。)
我正在尝试在MacBook上设置虚拟主机。我正在使用与我在Windows机器上完全相同的虚拟主机设置,这可以正常工作。
首先我编辑了hosts文件。在我添加的127.0.0.1 localhost
行下:
127.0.0.1 dev.mysite.com
接下来我编辑了/Applications/MAMP/conf/apache/httpd.conf并从vhosts中删除了#
:
# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
接下来我编辑了/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "/Users/Gavin/Web"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Users/Gavin/Web/mysite/public_html"
ServerName dev.mysite.com
</VirtualHost>
接下来我打开终端并运行dscacheutil -flushcache
并重新启动MAMP。 localhost
工作正常,dev.mysite.com
会出现标准的Chrome This webpage is not available
错误。
答案 0 :(得分:1)
您还必须在vhosts中定义<Directory>
才能使其正常工作。我相信localhost
只能在主apache配置中定义它。
您应该在主配置中禁用主本地主机服务器,并在httpd-vhosts.conf
:
## localhost
<VirtualHost *:80>
DocumentRoot /Users/Gavin/Web
ServerName localhost
ServerAlias www.localhost
<Directory "/Users/Gavin/Web">
Allow from All
AllowOverride all
Options -Indexes +FollowSymlinks
</Directory>
UseCanonicalName on
</VirtualHost>
## dev.mysite.com
<VirtualHost *:80>
DocumentRoot /Users/Gavin/Web/mysite/public_html
ServerName dev.mysite.com
ServerAlias www.dev.mysite.com
<Directory "/Users/Gavin/Web/mysite/public_html">
Allow from All
AllowOverride all
Options -Indexes +FollowSymlinks
</Directory>
UseCanonicalName on
</VirtualHost>
另外,要确保Chrome真正提取/etc/hosts
文件,请在地址栏中键入http://
的网址,如下所示:
http://localhost
http://dev.mysite.com
将.com
用于本地不是一个好主意,所以不要使用它。请改用.localhost
TLD以避免进一步的问题。 .local
在Mac上运行良好。