MAMP中的VirtualHosts

时间:2014-04-05 21:28:40

标签: apache mamp

(我读过很多关于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错误。

1 个答案:

答案 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上运行良好。