如何在MAMP中创建虚拟主机?

时间:2016-02-07 07:45:35

标签: 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.loc
255.255.255.255 broadcasthost
::1             localhost

但接下来要做什么?

6 个答案:

答案 0 :(得分:41)

谷歌搜索时,我发现这些步骤可以在MAMP上轻松创建虚拟主机:

  1. 在Mac中打开您的控制台并像这样编辑您的主机文件

    sudo vim / etc / hosts

  2. 这将打开一个包含以下行的系统文件:

    127.0.0.1    localhost
    

    在本地主机后添加您想要的主机名:

    127.0.0.1    localhost mysite.loc
    

    按ESC,然后:wq!覆盖并关闭文件。

    1. 现在转到您的MAMP目录并在任何文本编辑器中打开位于Applications / MAMP / conf / apache / httpd.conf的apache配置文件,找到以下行:
    2. # 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。这是您定义虚拟主机的位置。

      1. 在页面底部是两个如何在Apache中定义虚拟主机的示例。它们看起来像这样:
      2. <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)

  1. 允许虚拟主机

    转到应用程序> 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
    
  2. 允许SymLink覆盖

    在同一httpd.conf文件中找到此行。

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride None
    </Directory>
    

    将“无”更改为“全部”。

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
    
  3. 添加虚拟主机路径

    转到应用程序> MAMP> conf> apache> extra> httpd-vhosts.conf

    添加具有servname和文档根目录的虚拟主机,如下面的代码

    <VirtualHost *:80>
      ServerName example.dev
      DocumentRoot "/path/to/directory"
    </VirtualHost>
    
  4. 允许您的计算机识别您的本地域

    打开终端并输入

    sudo pico /etc/hosts
    

    然后添加您的域

    127.0.0.1 example.dev
    
  5. 重新启动服务器。

    如果该网址在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/

尽管有两点值得一提:

  • 此行在我的httpd.conf文件中尚不存在,我必须添加它:Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
  • 我必须使用.test域结尾,而不是.dev作为VirtualHost ServerName。帖子中提到了这一点,但随后继续使用.dev。显然,Chrome浏览器不支持2017年之后的.dev域,尽管对我来说它也不支持Firefox或Safari。