如何在 MAMP 中创建虚拟主机?
How to create virtual hosts in MAMP?
我是 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
但是接下来要做什么呢?
在谷歌搜索时,我发现这些步骤可以轻松地在 MAMP 上创建虚拟主机:
在 mac 中打开您的控制台并像这样编辑您的主机文件
sudo vim /etc/hosts
这将打开一个包含以下行的系统文件:
127.0.0.1 localhost
在本地主机后添加您想要的主机名:
127.0.0.1 localhost mysite.loc
按ESC,然后:wq!
覆盖并关闭文件。
- 现在转到您的 MAMP 目录并在任何文本编辑器中打开位于
/Applications/MAMP/conf/apache/httpd.conf
的 apache 配置文件并找到以下行:
# Virtual Hosts
# Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
从以 Include
开头的行的开头删除井号(井号)
# Virtual Hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
保存文件,然后打开Applications/MAMP/conf/apache/extra/httpd-vhosts.conf。这是您定义虚拟主机的地方。
- 页面底部有两个示例,说明如何在 Apache 中定义虚拟主机。它们看起来像这样:
<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>
这里假定您要在“站点”文件夹中找到 mysite 的文件。将第二个定义中的“用户名”替换为您自己的 Mac 用户名。如果要将文件存储在不同的位置,请相应地调整 DocumentRoot 的值。
如果要创建多个虚拟主机,请复制其中一个定义,然后进行相应的编辑。
保存您编辑的所有文件,并在MAMP 控制面板中重新启动服务器。您现在应该可以使用以下 URL 访问虚拟主机:http://mysite.loc/.
享受..!!
在我的 MAMP 配置中,只有第一个虚拟主机在响应。
经过几个小时的搜索,我找到了解决问题的说明(在列出虚拟主机定义之前):
NameVirtualHost *:80
现在,我的 3 个虚拟主机正在运行!
最近我在 MAC 上从 XAMP 更改为 MAMP。我试图设置我的最后一个虚拟主机,但是 MAMP 的 8888 端口号被避免正常工作。
我终于找到了解决办法。您可以更改 httpd.conf 中的监听端口和服务器名称,如您在以下 post 中所见:
https://www.taniarascia.com/setting-up-virtual-hosts/
添加到 Ritesh 的答案中
您可能还想在 httpd.conf 中添加一个目录配置,类似于已经存在的目录配置,但用于新服务器的文档根目录。
例如:
<Directory "/Users/username/Sites/mysite">
Options All
AllowOverride All
Order allow,deny
Allow from all
XSendFilePath "/Users/username/Sites/mysite"
</Directory>
允许虚拟主机
转到应用程序 > 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
允许覆盖符号链接
在同一个 httpd.conf
文件中找到这一行。
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
将 None 更改为全部。
<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
重新启动服务器。
如果 url 在 chrome 中显示错误,请尝试 safari
我按照 szatti1489 的推荐遵循了这个 post,它对我有用:https://www.taniarascia.com/setting-up-virtual-hosts/
有几点值得一提:
- 我的 httpd.conf 文件中不存在这一行,我必须添加它:
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
- 我必须使用
.test
域结尾,而不是 .dev
作为我的 VirtualHost ServerName。 post 提到了这一点,但随后继续使用 .dev
。显然,Chrome 不支持 2017 年后结束的 .dev
域,尽管它在 Firefox 或 Safari 中对我来说也不起作用。
我是 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
但是接下来要做什么呢?
在谷歌搜索时,我发现这些步骤可以轻松地在 MAMP 上创建虚拟主机:
在 mac 中打开您的控制台并像这样编辑您的主机文件
sudo vim /etc/hosts
这将打开一个包含以下行的系统文件:
127.0.0.1 localhost
在本地主机后添加您想要的主机名:
127.0.0.1 localhost mysite.loc
按ESC,然后:wq!
覆盖并关闭文件。
- 现在转到您的 MAMP 目录并在任何文本编辑器中打开位于
/Applications/MAMP/conf/apache/httpd.conf
的 apache 配置文件并找到以下行:
# Virtual Hosts
# Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
从以 Include
开头的行的开头删除井号(井号)# Virtual Hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
保存文件,然后打开Applications/MAMP/conf/apache/extra/httpd-vhosts.conf。这是您定义虚拟主机的地方。
- 页面底部有两个示例,说明如何在 Apache 中定义虚拟主机。它们看起来像这样:
<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>
这里假定您要在“站点”文件夹中找到 mysite 的文件。将第二个定义中的“用户名”替换为您自己的 Mac 用户名。如果要将文件存储在不同的位置,请相应地调整 DocumentRoot 的值。
如果要创建多个虚拟主机,请复制其中一个定义,然后进行相应的编辑。
保存您编辑的所有文件,并在MAMP 控制面板中重新启动服务器。您现在应该可以使用以下 URL 访问虚拟主机:http://mysite.loc/.
享受..!!
在我的 MAMP 配置中,只有第一个虚拟主机在响应。
经过几个小时的搜索,我找到了解决问题的说明(在列出虚拟主机定义之前):
NameVirtualHost *:80
现在,我的 3 个虚拟主机正在运行!
最近我在 MAC 上从 XAMP 更改为 MAMP。我试图设置我的最后一个虚拟主机,但是 MAMP 的 8888 端口号被避免正常工作。
我终于找到了解决办法。您可以更改 httpd.conf 中的监听端口和服务器名称,如您在以下 post 中所见: https://www.taniarascia.com/setting-up-virtual-hosts/
添加到 Ritesh 的答案中
您可能还想在 httpd.conf 中添加一个目录配置,类似于已经存在的目录配置,但用于新服务器的文档根目录。
例如:
<Directory "/Users/username/Sites/mysite">
Options All
AllowOverride All
Order allow,deny
Allow from all
XSendFilePath "/Users/username/Sites/mysite"
</Directory>
允许虚拟主机
转到应用程序 > 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
允许覆盖符号链接
在同一个
httpd.conf
文件中找到这一行。<Directory /> Options Indexes FollowSymLinks AllowOverride None </Directory>
将 None 更改为全部。
<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
重新启动服务器。
如果 url 在 chrome 中显示错误,请尝试 safari
我按照 szatti1489 的推荐遵循了这个 post,它对我有用:https://www.taniarascia.com/setting-up-virtual-hosts/
有几点值得一提:
- 我的 httpd.conf 文件中不存在这一行,我必须添加它:
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
- 我必须使用
.test
域结尾,而不是.dev
作为我的 VirtualHost ServerName。 post 提到了这一点,但随后继续使用.dev
。显然,Chrome 不支持 2017 年后结束的.dev
域,尽管它在 Firefox 或 Safari 中对我来说也不起作用。