升级到Sierra OS后Localhost拒绝连接


8

我已经下载并安装apachephpphpmyadminmysql通过MacPorts的。升级到macOS Sierra之前,一切工作正常。

升级后,每当我尝试访问localhost时,我都会收到以下错误消息:“无法访问此站点,localhost拒绝连接。”

尽管我在apache http.conf文件中的设置保持不变,但这种情况正在发生。

我还提供了主机文件的内容

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

有什么建议吗?


您是否已验证所有这些服务确实在运行?
samh,2013年

如果我运行“ sudo port load apache2”命令,则会从终端“ /opt/local/etc/LaunchDaemons/org.macports.apache2/org.macports.apache2.plist:服务已加载”中得到以下响应:我很确定apache正在运行。
vasilisdmr

请添加您的/ etc / hosts文件的内容。127.0.0.1是否有效?也许相关:apple.stackexchange.com/questions/252466/...
klanomath

您是否运行configtest以确保一切正常?我在Apache的常规安装中遇到了类似的问题,该更新中的某些内容破坏了相关的软件包之一。
尼克松博士,

刚刚进行了配置测试,结果如下:“ httpd:用户名-MacBook-Pro.local的apr_sockaddr_info_get()失败”“ httpd:无法使用127.0.0.1可靠地确定服务器的标准域名。全局使用ServerName'指令禁止显示此消息”。因此,我按照本教程和“ mdshaonimran.wordpress.com/2011/10/17/… ”进行操作,错误消失了,但是尝试访问localhost时仍然收到拒绝消息。
vasilisdmr

Answers:


3

我通过注释掉我的这一行来解决此问题httpd.conf

LoadModule unique_id_module modules/mod_unique_id.so

我对mod_unique_id不太熟悉,但是在本地开发服务器上安装它似乎并不关键(您的情况可能有所不同)。

unique_id_module

该模块为每个请求提供一个魔术令牌,该令牌在非常特定的条件下保证在“所有”请求中是唯一的。唯一标识符甚至在正确配置的机器群集中的多台机器之间也是唯一的。环境变量UNIQUE_ID设置为每个请求的标识符。出于各种原因,唯一标识符很有用,这些原因超出了本文档的范围。


11

更新到macOS Sierra之后,Apache httpd将旧版本httpd.conf移至httpd.conf.pre-update新版本并放置。为了使localhost工作,请尝试以下过程:

cd /etc/apache2/  
sudo mv httpd.conf httpd.conf-afterupdate  
sudo mv httpd.conf.pre-update httpd.conf  
sudo apachectl configtest  
sudo apachectl restart  

然后测试:

curl -I -L localhost

3
sudo apachectl configtest给了我所有的错误!救生员,谢谢。
约书亚·基斯顿

2
非常感谢您的回答!顺便问一下,您是如何找到此解决方案的?我没有在configtest上遇到任何错误(我应该知道吗?),老实说,我不知道自己从哪里开始寻找答案。
Rahul Govind '18

您节省了我的大量时间,非常感谢。
Sila Khatun,

3

我有同样的问题。我跑了sudo apachectl configtest,得到消息:

AH00526:/private/etc/apache2/other/default-ssl.conf第6行的语法错误:

无效的命令“ SSLEngine”,可能是拼写错误或由服务器配置中未包含的模块定义的

我只是重命名了默认的ssl配置文件,因此不再加载它。稍后重新启动apache,一切恢复了。


1

我有同样的问题,我解决了在httpd.conf中注释mod_proxy_hckeck的问题

LoadModule proxy_hcheck_module libexec / apache2 / mod_proxy_hcheck.so

编辑:我在apache.org中发现此模块需要mod_watchdog,但是对该模块进行了注释,因此只需注释一下mod_proxy_hcheck或取消注释mod_watchdog LoadModule watchdog_module libexec / apache2 / mod_watchdog.so

希望它有效!


注释掉mod_proxy_hcheck也为我解决了它。在此之前,Apache将无声地无法绑定到其端口。
奥托G

1

我有同样的问题。幸运的是,我能够偶然解决问题。在“手提箱融合”加载错误之后,我意识到问题不是由Apache引起的。问题是主要的/ etc /文件。

替换主机文件

您可以从http://cs.us.extensis.com/HostsFile/hosts.zip下载默认的Mac OS主机文件。

解压缩主机文件;它应该没有文件扩展名。在Finder中,转到“转到”>“转到文件夹”,对于“转到文件夹”,输入“ / etc”,然后按Enter键。将主机文件放置在etc文件夹中后,在询问时输入Mac OS管理员用户名和密码:

打开终端应用程序输入以下命令,然后按Enter:sudo chmod 644 / etc / hosts输入您的Mac OS密码,然后按Enter在“终端”窗口中键入Mac OS密码时,您可能会看到项目符号,按键图标或没有任何内容。在您使用的Mac OS版本上。这个是正常的。

清除Mac OS DNS缓存

在“终端”窗口中,输入以下命令,然后按Enter:sudo killall -HUP mDNSResponder重新启动Mac原因

Suitcase Fusion使用hosts文件使用环回地址(127.0.0.1或localhost)查找并连接到类型核心。如果不存在hosts文件,或者127.0.0.1的条目指向的名称不是localhost,您将看到上面显示的错误消息之一。

如果Suitcase Fusion无法将localhost解析为127.0.0.1,您将收到第一条错误消息;否则,将显示错误消息。如果类型core无法将localhost解析为127.0.0.1,则会收到第二条错误消息。

如果主机文件已被修改,则在升级到新版本的Mac OS时可能会将其删除。第三方应用程序或网络实用程序也可能会错误地更改localhost条目。有关更多信息,请参见如何在带有终端的Mac OS X中编辑主机文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.