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

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

我是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配置文件,并找到以下行:
  • 从以Include开头的行的开头删除哈希(磅)符号

    # Virtual Hosts
    Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
    
    保存文件,然后打开Applications/MAMP/conf/apache/extra/httpd-vhosts.conf。这是定义虚拟主机的地方

  • 页面底部有两个示例,说明如何在Apache中定义虚拟主机。它们看起来像这样:
  • 
    服务器管理员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”
    
  • 允许虚拟主机

    转到应用程序>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>
    
    然后添加您的域

    127.0.0.1 example.dev
    
  • 重新启动服务器

    如果url在chrome中显示错误,请尝试safari


  • 根据szatti1489的推荐,我遵循了这篇文章,它对我很有用:

    但有两点值得一提:

    • 这一行在我的httpd.conf文件中不存在,我必须添加它:
      Include/Applications/MAMP/conf/apache/extra/httpd vhosts.conf
    • 我必须使用
      .test
      域结尾,而不是
      .dev
      作为我的VirtualHost服务器名。这篇文章提到了这一点,但随后继续使用
      .dev
      。显然,Chrome不支持2017年后结束的
      .dev
      域,尽管它在Firefox或Safari中对我也不起作用

    对我来说,它只是说“它有效”,而没有其他任何东西显示出来。为什么它现在不引用正确的文件夹在MAMP的常规配置中,Apache端口应设置为80,以使此配置对我有效。唯一的问题是,在访问虚拟主机时,请不要忘记提及端口。例如,如果您的站点名称是myproj,那么请通过以下方式访问此站点:8888是端口号。@trainoasis append:8888在您的url之后即可。@Ritesh,您可以看看我的问题吗?我在使用Vhost创建时遇到问题。为我工作。唯一的问题是,在访问虚拟主机时,请不要忘记提及端口。例如,如果您的站点名称是myproj,那么请通过此处访问此站点,其中8888是端口号。@Andre DLC您能看看我的问题吗?我在使用Vhost.Yo创建时遇到问题!兄弟。你节省了我的时间。关于允许符号链接的好提示。在我浪费了很多时间思考问题之后,它帮助了我。
    # 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