我可以在MAMP上使用虚拟主机和localhost吗?

时间:2014-04-08 17:06:31

标签: macos apache mamp

我的MAMP设置与虚拟主机配合使用,效果非常好。我遇到的一个问题是只要启用虚拟主机,localhost就不起作用。我无法确定这是否是正常行为。我可以让本地主机和虚拟主机都在MAMP上运行吗?

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。这将需要添加到vhosts,但它不能像其他任何一样添加...它必须配置,因此它是默认的vhost。要做到这一点,你需要设置你的apache配置以允许vhosts(我假设你已经处理过这个)。

在开始列出Vhost之前,您的Vhosts配置需要一些内容才能使localhost正常工作。首先是NameVirtualHost指令,然后是主vhost(你的本地主机),然后是常规虚拟主机。 Apache将尝试将提供的主机与所有已命名的vhost进行匹配,并且当它失败时,默认情况下它将为您的默认vhost(即首先列出的vhost )提供服务。为了实现这一目标,我建议更改3个文件:etc/hostsapache.confvhosts.conf

在您的主机文件中,为机器设置除localhost之外的其他名称,并将127.0.0.1设置为localhost

<强>主机

127.0.0.1 localhost  puededev

然后在你的apache.conf中更改你的ServerName指令以匹配新的主机名。这通常设置为127.0.0.1或localhost,通常后跟带有一些权限设置的Directory指令块

<强>的apache.conf

ServerName puededev

现在,在您的虚拟主机中,您将设置NameVirtualHosts配置和默认虚拟主机,然后设置其他虚拟主机:

<强> vhosts.conf

NameVirtualHost puededev
Listen 80
Listen 8080 
# list out any other ports you are using

<VirtualHost localhost:*>
    ServerAdmin webmaster@example.com
    ServerName localhost
    DocumentRoot /home/usr/mamp/htdocs
    <Directory /home/usr/mamphtdocs>
       order deny,allow
       Allow from 127.0.0.1
       Allow from ::1
    </Directory>
</VirtualHost>

也可以使用您现在使用的任何配置,并为可以在虚拟主机之外工作的不同应用程序创建别名。这就是phpmyadmin与MAMP一起运行的方式,你会注意到你仍然可以使用localhost / phpmyadmin作为可访问的路径,即使你可能会被禁止/你只是使用{{1}时没有访问错误此刻。

别名取决于您的安装是否设置为管理外部文件中的别名,但您始终可以在localhost/中定义别名。如果你想做apache.conf而不是将vhost设置为localhost/sampleapp

,你可能会使用这种方法
http://sampleapp/

现在转到:Alias /sampleapp /path/to/sampleapp <Directory /path/to/sampleapp> Order allow,deny Allow from all </Directory>