Mac OS sierra 更新后 Apache 出现 404 错误

Posted

技术标签:

【中文标题】Mac OS sierra 更新后 Apache 出现 404 错误【英文标题】:Apache giving 404 error after Mac OS sierra update 【发布时间】:2017-02-03 15:37:09 【问题描述】:

我最近刚刚更新到 Mac OS 10.11 Sierra,经典 Web 服务器无法正常工作,或者我应该说我的主目录无法正常工作 当我得到 'It works' 页面时,Apache 服务器正在本地主机上工作,但 localhost/~myuser 正在发送此消息 'The requested URL /~myuser was not found on this server' 我试图关注这个tuto,但它仍然无法正常工作

有人可以帮我吗?

【问题讨论】:

【参考方案1】:

在终端中,前往 /etc/apache2 和

sudo mv httpd.conf httpd.conf.sierra
sudo mv httpd.conf~previous httpd.conf
sudo apachectl restart

对我来说就像一个魅力。

【讨论】:

在上述和另一个 SO 帖子之后,这对我有用。这是正确的答案。 该死.. 现在我的 Mac 上根本无法连接到互联网!我知道这是一些设置问题..因为我可以在恢复模式下.. 这个是正确的答案,除了ServerName这个条目还需要设置 我这样做了 + 以类似的方式重命名了 httpd-vhosts.conf 文件。这为我整理好了。 (为此我非常讨厌 Mac,升级后总是出现问题。) 这个解决方案帮助了我【参考方案2】:

从 El Capitan 升级到 Sierra 后,什么对我有用:

1) 从 /etc/apache2/httpd.conf 中取消注释

LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
Include /private/etc/apache2/extra/httpd-vhosts.conf
Include /private/etc/apache2/extra/httpd-userdir.conf

2) 从/etc/apache2/extra/httpd-userdir.conf 中取消注释

Include /private/etc/apache2/users/*.conf

3) 在我的 /etc/apache2/users/$USERNAME.conf 文件中,我还配置了 ProxyPass,为了让它再次工作,我必须重新-从我的 httpd.conf

中取消注释以下内容
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so

4) php 可选:您还需要从 httpd.conf 中重新取消注释以下内容:

LoadModule php5_module libexec/apache2/libphp5.so

5) 当然,重启apache

sudo apachectl -k restart

之后一切都对我有用,但我现在更有动力开始搬到 Vagrant。

【讨论】:

它不适合我,但消息已经改变,虽然我有一个 403 禁止页面现在我仔细检查了 /etc/apache2/users/username.conf 并且它包含以下假定的行没事还有其他线索吗? AllowOverride All Options Indexes MultiViews FollowSymLinks 要求所有授予 我在取消注释 httpd-userdir.conf 中提到的行之前遇到了禁止的问题,重新检查读取 *.conf 的行未注释。还要确定的是,chmod 644 username.conf 文件。要尝试 apache 是否考虑了 username.conf,您可以在其中放置任何错误的表达式并重新启动,它应该会显示错误。 @drusixtynine 请检查关于在 httpd.conf 中取消注释 Include[...]httpd-userdir.conf 行的最后编辑,希望这可以解决问题。跨度> 声明 Include /private/etc/apache2/extra/httpd-userdir.conf 的行未注释。即使该文件有一个我没有更改的虚拟样本并且会发出警告。 username.conf 的 chmod 为 644 是的 username.conf 被考虑,我有一个错误表达式的错误我有点卡在这里 它现在正在工作,我不知道为什么,但我发现在文件 extra/httpd-userdir.conf 中错误地注释了“Userdir Sites”行。谢谢赫舍姆 :)【参考方案3】:
cd /etc/apache2
sudo mv httpd.conf httpd.conf.sierra
sudo mv httpd.conf~previous httpd.conf

cd /etc/apache2/extra
sudo mv httpd-vhosts.conf httpd-vhosts.conf.sierra
sudo mv httpd-vhosts.conf~previous httpd-vhosts.conf

sudo apachectl restart

【讨论】:

更新到 Mojave 禁用 localhosting。很多教程展示了如何重新激活但未能展示 phpMyAdmin 返工。这是我发现使 phpMyAdmin 重新联机的唯一方法。谢谢!!【参考方案4】:

我最近也将我的 El Capitan 更新为 Sierra,并且遇到了类似的问题。我检查了 /etc/apache2/ 和额外的目录,我注意到所有的 Apache 配置文件都是在更新时创建的,它们看起来是默认的,但也有我来自 el capitan 的自定义文件,名称为 ~previous。我所要做的就是将那些默认值替换为以前的那些,并且像一个魅力一样工作。

【讨论】:

【参考方案5】:

在 /etc/apache2/extra 中

你会看到一个 httpd-vhosts.conf~previous

那是你以前的 vhosts.conf 文件。

只要使用配置文件就可以了。

对我来说就像一种魅力。

【讨论】:

【参考方案6】:

如果其他人在遵循所选答案后遇到此问题并在访问您的虚拟主机时遇到问题,我必须采取额外的步骤。

在 /private/etc/apache2/extra/httpd-vhosts.conf 中,他们删除了该行(在我的情况下,它应该位于文件的底部):

Include /private/etc/apache2/vhosts/*.vhost

然后

sudo apachectl restart

【讨论】:

以上是关于Mac OS sierra 更新后 Apache 出现 404 错误的主要内容,如果未能解决你的问题,请参考以下文章

mac os下的Apache配置 macOS Sierra 10.12

最新更新后无法在 Mac High Sierra 10.13.5 上启动 apache(2018 年 6 月 15 日)

sh Mac OS X High Sierra / PHP Apache httpd配置节点NPM

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

如何在 Mac OS Sierra 10.12 上安装 Nokogiri

在 Mac OS X Sierra 上为 Django Python 安装 mysqlclient