我的MAMP设置与虚拟主机配合使用,效果非常好。我遇到的一个问题是只要启用虚拟主机,localhost就不起作用。我无法确定这是否是正常行为。我可以让本地主机和虚拟主机都在MAMP上运行吗?
答案 0 :(得分:0)
是的,这是可能的。这将需要添加到vhosts,但它不能像其他任何一样添加...它必须配置,因此它是默认的vhost。要做到这一点,你需要设置你的apache配置以允许vhosts(我假设你已经处理过这个)。
在开始列出Vhost之前,您的Vhosts配置需要一些内容才能使localhost正常工作。首先是NameVirtualHost
指令,然后是主vhost(你的本地主机),然后是常规虚拟主机。 Apache将尝试将提供的主机与所有已命名的vhost进行匹配,并且当它失败时,默认情况下它将为您的默认vhost(即首先列出的vhost )提供服务。为了实现这一目标,我建议更改3个文件:etc/hosts
,apache.conf
和vhosts.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>