问题

问题

问题

我需要为VirtualHost已在 Mac 上安装的 MAMP 服务器设置一些记录。简而言之,http://localhost:8888/dkbtherapy/index.html我想使用 而不是 使用http://l.dkbtherapy.com。但是,我所做的配置不起作用。

VirtualHost 配置

/Applications/MAMP/conf/Apache文件夹中我修改了httpd.conf文件并添加了以下VirtualHost配置:

<VirtualHost *:8888>
  DocumentRoot /Applications/MAMP/htdocs/dkbtherapy
  ServerName l.dkbtherapy.com
</VirtualHost>

所以应该为其设置路由(我想)。然后我修改了我的hosts文件并添加了以下内容:

127.0.0.1:8888  l.dkbtherapy.com

但是当我在 Safari 中输入时,l.dkbtherapy.com我得到:

Safari 找不到服务器。

现在,我在进行更改后重新启动了 Apache 服务器,但我还没有重新启动 Mac。虽然我认为我不需要重新启动 Mac。我在上面的配置中遗漏了什么?

笔记:进行更改后http://localhost:8888/dkbtherapy/index.html现在也不起作用,我收到一条404返回消息:

该服务器上未找到所请求的 URL /dkbtherapy/index.php。

编辑:在查看了我的 Windows 机器后,我发现它已经配置好了,并且能够正常工作,于是我注意到出现了一行配置信息,因此我也将它添加到了 Mac 上的配置信息中:

NameVirtualHost *:8888

编辑相关内容http://localhost:8888/dkbtherapy/index.html:当我查看 Apache 的错误日志时,当我尝试导航到该路径时,我看到此错误:

[2013 年 5 月 31 日星期五 11:23:41] [错误] [客户端 ::1] 文件不存在:/Applications/MAMP/htdocs/dkbtherapy/dkbtherapy

因此出于某种原因,它认为这dkbtherapy是服务器的绝对根它出现-我如何做到的?

答案1

好吧,您已经将其定义/Applications/MAMP/htdocs/dkbtherapy为虚拟主机的 DocumentRoot,这意味着该目录映射到 URL——127.0.0.1:8888/因此当您访问时127.0.0.1:8888/dkbtherapy/index.html,Apache 会将其映射到/Applications/MAMP/htdocs/dkbtherapy/dkbtherapy/index.html不存在的,因此您会在日志中看到错误。

您有两个选择。一个是将 DocumentRoot 值更改为/Applications/MAMP/htdocs/,这将使.../dkbtherapyURL 指向您想要的位置。

另一个选择,也是我认为更可取的选择,就是简单地删除/dkbtherapy您的 URL,然后访问 eg http://127.0.0.1:8888/index.html。(我说这是可取的,因为该网站在生产时很可能会有自己的域名,并且其 URL 不需要包含/dkbtherapy/。如果是这样,并且考虑到开发环境总是尽可能接近生产环境,那么第二个选项更接近产生该结果,因此比第一个选项更好。)

关于您的文件还有一点需要注意/etc/hosts:您无法在该文件中指定端口号,只能指定 IP 地址。出现“未找到主机”错误是因为 TCP 堆栈无法解析该条目,因此会忽略它。以下方法有效:

127.0.0.1      l.dkbtherapy.com

完成上述更改以及前面描述的对 DocumentRoot 的更改后,http://l.dkbtherapy.com:8888应该可以到达您网站的索引页。

(此外,除非您实际使用基于名称的虚拟主机,否则您可能不需要 NameVirtualHost 行,但现在听起来情况并非如此。在您实际设置基于名称的虚拟主机之前,将其保留在那里可能不会有任何损害,但删除它也不会对 Apache 的行为产生影响。)

答案2

对于将来访问此页面的人:

:8888从您的 URL 中删除的第一步是编辑/Applications/MAMP/conf/apache/httpd.conf并将Listen指令更改为Listen 80

要设置VirtualHost,仍然在上面的同一文件中,搜索Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf,确保它没有被注释掉,即删除#它前面的 (如果有)。然后转到文件/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf以设置您的虚拟主机。

相关内容