Macos 如何在MAMP中创建虚拟主机?
我是Mac的新手,但很长一段时间以来一直使用Ubuntu进行开发。我知道如何在Ubuntu中创建虚拟主机,但不知道Mac。我创建了一个Macos 如何在MAMP中创建虚拟主机?,macos,mamp,virtualhost,Macos,Mamp,Virtualhost,我是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
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
但下一步该怎么办?在谷歌搜索时,我发现以下步骤可以轻松地在MAMP上创建虚拟主机:
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
保存文件,然后打开Applications/MAMP/conf/apache/extra/httpd-vhosts.conf。这是定义虚拟主机的地方
服务器管理员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\u log”
CustomLog“logs/dummy host.example.com-access_log”通用
服务器管理员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”通用
编辑两个示例。虚拟主机覆盖现有的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>
DocumentRoot/Applications/MAMP/htdocs
服务器名本地主机
DocumentRoot“/用户/用户名/站点/mysite”
ServerName mysite.loc
这假设您想在您的站点文件夹中找到mysite的文件。将第二个定义中的“用户名”替换为您自己的Mac用户名。如果要将文件存储在其他位置,请相应调整DocumentRoot的值
如果要创建多个虚拟主机,请复制其中一个定义,并对其进行相应的编辑
保存已编辑的所有文件,并在MAMP控制面板中重新启动服务器。您现在应该能够使用以下URL访问虚拟主机:
享受 在MAMP的我的配置中,只有第一个虚拟主机响应。
经过数小时的搜索,我找到了解决问题的说明(在列出虚拟主机定义之前):
现在,我的3个虚拟主机正在工作 最近我在MAC上从XAMP改为MAMP。我试图设置最后一个虚拟主机,但MAMP的8888端口号无法正常工作 最后我找到了解决办法。您可以在httpd.conf中更改侦听端口和服务器名,如下文所示:
补充了Ritesh的答案 您可能还希望在httpd.conf中添加一个目录配置,该配置类似于已经存在的配置,但是对于您的应用程序,您需要使用新服务器的文档根 例如:
<Directory "/Users/username/Sites/mysite">
Options All
AllowOverride All
Order allow,deny
Allow from all
XSendFilePath "/Users/username/Sites/mysite"
</Directory>
选项全部
允许超越所有
命令允许,拒绝
通融
XSendFilePath“/Users/username/Sites/mysite”
# Virtual hosts
#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
通过删除哈希符号来取消对代码的注释
# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
httpd.conf
文件中找到这一行
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
然后添加您的域
127.0.0.1 example.dev
根据szatti1489的推荐,我遵循了这篇文章,它对我很有用: 但有两点值得一提:
- 这一行在我的httpd.conf文件中不存在,我必须添加它:
Include/Applications/MAMP/conf/apache/extra/httpd vhosts.conf
- 我必须使用
域结尾,而不是.test
作为我的VirtualHost服务器名。这篇文章提到了这一点,但随后继续使用.dev
。显然,Chrome不支持2017年后结束的.dev
域,尽管它在Firefox或Safari中对我也不起作用.dev
# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
<VirtualHost *:80>
ServerName example.dev
DocumentRoot "/path/to/directory"
</VirtualHost>
sudo pico /etc/hosts
127.0.0.1 example.dev