我是Mac的新手,但是长时间使用Ubuntu进行开发。我知道如何在Ubuntu中创建虚拟主机,但不知道Mac。我创建了一个hosts
条目,如下所示:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost mysite.loc
255.255.255.255 broadcasthost
::1 localhost
但接下来要做什么?
答案 0 :(得分:41)
谷歌搜索时,我发现这些步骤可以在MAMP上轻松创建虚拟主机:
在Mac中打开您的控制台并像这样编辑您的主机文件
sudo vim / etc / hosts
这将打开一个包含以下行的系统文件:
127.0.0.1 localhost
在本地主机后添加您想要的主机名:
127.0.0.1 localhost mysite.loc
按ESC,然后:wq!覆盖并关闭文件。
# Virtual Hosts
# Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
从包含
开头的行的开头删除哈希(磅)符号# Virtual Hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
保存文件,然后打开Applications / MAMP / conf / apache / extra / httpd-vhosts.conf。这是您定义虚拟主机的位置。
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/Applications/MAMP/Library/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/Applications/MAMP/Library/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
编辑这两个例子。虚拟主机覆盖现有的localhost,因此第一个需要重新建立localhost。编辑要添加的虚拟主机的第二个。只需要DocumentRoot和ServerName指令。要为mysite添加虚拟主机,编辑后的定义应如下所示:
<VirtualHost *:80>
DocumentRoot /Applications/MAMP/htdocs
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Users/username/Sites/mysite"
ServerName mysite.loc
</VirtualHost>
这假定您要在Sites文件夹中找到mysite的文件。替换&#34;用户名&#34;在第二个定义中使用您自己的Mac用户名。如果要将文件存储在其他位置,请相应地调整DocumentRoot的值。
如果要创建多个虚拟主机,请复制其中一个定义,然后相应地进行编辑。
保存您编辑过的所有文件,然后在MAMP控制面板中重新启动服务器。您现在应该能够使用以下URL访问虚拟主机:http://mysite.loc/。
享受.. !!
答案 1 :(得分:3)
在我的MAMP配置中,只有第一个虚拟主机正在响应 经过几个小时的搜索,我找到了解决问题的指令(在列出虚拟主机定义之前):
NameVirtualHost *:80
现在,我的3个虚拟主机正在运行!
答案 2 :(得分:3)
允许虚拟主机
转到应用程序> MAMP> conf> apache> httpd.conf
查找此行:
# Virtual hosts
#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
通过删除哈希符号取消注释代码。
# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
允许SymLink覆盖
在同一httpd.conf
文件中找到此行。
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
将“无”更改为“全部”。
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
添加虚拟主机路径
转到应用程序> MAMP> conf> apache> extra> httpd-vhosts.conf
添加具有servname和文档根目录的虚拟主机,如下面的代码
<VirtualHost *:80>
ServerName example.dev
DocumentRoot "/path/to/directory"
</VirtualHost>
允许您的计算机识别您的本地域
打开终端并输入
sudo pico /etc/hosts
然后添加您的域
127.0.0.1 example.dev
重新启动服务器。
如果该网址在Chrome中显示错误,请尝试使用safari
答案 3 :(得分:0)
最近我在MAC上从XAMP改为MAMP。我试图设置我的最后一个虚拟主机,但是MAMP的8888端口号避免了正常工作。
最后我找到了解决方案。您可以在httpd.conf中更改Listen端口和ServerName,如以下帖子中所示: https://www.taniarascia.com/setting-up-virtual-hosts/
答案 4 :(得分:0)
添加到Ritesh的答案
您可能还希望在httpd.conf中添加一个目录配置,类似于已经存在的目录配置,但是要作为新服务器的文档根目录。
例如:
<Directory "/Users/username/Sites/mysite">
Options All
AllowOverride All
Order allow,deny
Allow from all
XSendFilePath "/Users/username/Sites/mysite"
</Directory>
答案 5 :(得分:0)
我按照szatti1489的建议关注了该帖子,它对我有用:https://www.taniarascia.com/setting-up-virtual-hosts/
尽管有两点值得一提:
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
.test
域结尾,而不是.dev
作为VirtualHost ServerName。帖子中提到了这一点,但随后继续使用.dev
。显然,Chrome浏览器不支持2017年之后的.dev
域,尽管对我来说它也不支持Firefox或Safari。