虚拟主机不适用于安装 macOS Sierra

Posted

技术标签:

【中文标题】虚拟主机不适用于安装 macOS Sierra【英文标题】:Virtual hosts not working with install of macOS Sierra 【发布时间】:2017-01-31 16:51:59 【问题描述】:

我最近将我的工作机器更新为 macOS Sierra,但现在我的虚拟主机配置都无法正常工作。我需要重新配置所有这些,这是一个巨大的痛苦。

我想知道 - 这种情况发生是否正常?当我更新我的操作系统时,有没有办法防止这种情况发生?

此外,我的虚拟主机配置似乎不起作用。请看下文。

我已编辑 /etc/apache2/extra/httpd-vhosts.conf 以包括:

<VirtualHost *:80>
ServerAdmin lbanach@splashworldwide.com
DocumentRoot "/Users/splashnw/Sites/tm-charts"
ServerName tm-charts.dev
ErrorLog "/private/var/log/apache2/tm-charts.dev-error_log"
CustomLog "/private/var/log/apache2/tm-charts.dev-access_log" common
</VirtualHost>

而且,我的/etc/hosts 文件有:

127.0.0.1 tm-charts.dev

当我在浏览器中导航到 tm-charts.dev 时,只有一条消息:“它有效!”不是我在安装 macOS Sierra 之前最初在该 URL 看到的项目。

你能告诉我这里出了什么问题吗?谢谢!

【问题讨论】:

ping tm-charts.dev得到什么IP? @capsule 如果我 ping,我会收到以下内容:64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.074 ms 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.066 ms 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.088 ms 64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.060 ms 我只是想确保它转到 127.0.01 并且主机文件实际上没问题。您可以尝试在其中添加::1 localhost 吗?您仍然使用默认 apache vhost 的事实证明 Apache 仍在侦听 IPv4,因此 * vhost 基础应该是任何 IP、v4 或 v6,但谁知道呢。 【参考方案1】:

当您更新到 macOS 时,它会覆盖 /etc/apache2/ 文件夹中的“httpd.conf”文件。它还覆盖了 /etc/apache2/extra 文件夹中的“http-vhost.conf”文件。

您需要查看这些目录中是否有备份文件以取消注释行或将此作为示例来帮助恢复您的设置:http://digitalshore.io/local-web-development-environment-apache-macos-sierra-10-12/

检查 http-conf~previous 的“/etc/apache2”和“/etc/apache2/extra”文件夹和 http-vhost.conf~previous 文件恢复以前的设置

完成后请务必运行 sudo apachectl restart 以使新设置生效。

【讨论】:

我看到了 httpd.conf.pre-update 和 httpd.conf~previous。我应该将 httpdconf~previous 的全部内容复制到主 httpd.conf 文件中吗?如果是这样,我该如何替换 httpd.conf 和 http-vhost.conf 的全部内容?我尝试了一个没有运气的编辑器。 我确实重新启动了 apachectl 并解决了问题,谢谢!【参考方案2】:

在您完成@chris-holcomb 提供的说明后,请执行以下操作:

编辑文件/etc/apache2/httpd.conf:

取消注释第 160 行:

#LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

取消注释第 509 行:

#Include /private/etc/apache2/extra/httpd-vhosts.conf

Include /private/etc/apache2/extra/httpd-vhosts.conf

作为预防措施,请使用终端使用以下命令清除您的 dns 缓存:

sudo killall -HUP mDNSResponder

最后重启apache:

sudo apachectl restart

来源:Apple Stack Exchange

【讨论】:

以上是关于虚拟主机不适用于安装 macOS Sierra的主要内容,如果未能解决你的问题,请参考以下文章

如何在VMware上安装macOS High Sierra

在我的 Mac OS Sierra 构建主机上管理配置文件

使用NSView.layoutSubtreeIfNeeded()动画自动布局约束不适用于macOS High Sierra

如何在VMware上安装macOS Sierra 10.12

DELL 3020完美安装MACOS High Sierra

MacOS High Sierra 引起 VirtualBox Vagrant 同步慢