如何解决MAMP本地开发环境“Localhost Refused to Connect”错误

本地开发和测试服务器是任何WordPress开发人员工具库中最重要的工具之一。这些久经考验的解决方案使您能够快速轻松地构建网站,而不会有破坏实时Web服务器的风险。但是,他们可能偶尔仍会遇到问题。

MAMP是一种流行的本地Web开发工具,用于构建WordPress网站,但它有时会成为localhost问题的牺牲品。幸运的是,如果您遇到常见的“localhost refused to connect”消息,您可以采取一些步骤来解决此错误。

在本文中,我们将探讨MAMPlocalhost错误是什么,以及导致问题的原因。然后,我们将分享七种解决此连接问题的方法。

  1. MAMP简介(以及“本地主机拒绝连接”错误)
  2. 如何解决MAMP的“本地主机拒绝连接”错误

MAMP 简介(以及“本地主机拒绝连接”错误)

MAMP是一个由开源软件和专有软件组成的解决方案堆栈。MAMP这个名字来源于它的组件:macOS、Apache、PHP、MySQL或MariaDB,以及Perl或Python。但是,MAMP不限于这些元素。例如,您可能会选择使用Nginx而不是Apache

MAMP在您的Windows或macOS计算机上安装本地服务器环境,通常用于开发动态网站。MAMP也被使用WordPress等内容管理系统 (CMS) 的开发人员广泛使用:

您可以使用MAMP开发没有实时Web服务器的网站

您可以使用MAMP开发没有实时Web服务器的网站

使用MAMP,您可以在计算机上设置本地开发环境。这消除了通常与配置独立Web服务器相关的时间、成本和复杂性。换句话说,它非常适合快速测试项目或开发网站而不会破坏实时服务器。

但是,您在使用MAMP时仍可能遇到问题。当您尝试访问localhost时,您可能会看到以下错误消息:“localhost denied to connect”。

这通常发生在您的端口配置出现问题时。例如,另一个服务可能会阻止MAMP尝试使用的端口,或者您可能正在尝试完全访问错误的端口。当MAMP无法启动服务器时,您也可能会遇到此错误。

如何解决MAMP的“本地主机拒绝连接”错误(7种方法)

MAMP是用于在本地环境中开发和测试项目的流行解决方案。但是,如果您无法连接到localhost,您将很难从该工具中获得任何价值。如果您遇到“localhost拒绝连接”错误,这里有七个修复程序可以帮助您重新连接并重新开始工作。

1. 尝试不同的Web浏览器

您的连接问题可能是特定于浏览器的。每个网络浏览器都有独特的设置和行为。

特别是,某些浏览器会自动重定向到与任何HTTP网址等效的超文本传输​​协议安全 (HTTPS) 。如果您没有为Web项目启用安全套接字层 (SSL),则此重定向可能会触发localhost错误。

在进行更复杂的修复之前,您可能需要尝试通过其他Web浏览器访问您的localhost。这可以帮助您测试问题出在MAMP还是您正在使用的浏览器上。

如果您在备用浏览器中没有遇到localhost错误,这表明问题是特定于浏览器的。在这种情况下,我们建议检查您的浏览器设置以查找可能导致MAMP出现问题的任何配置。例如,您可能会发现您的浏览器默认将HTTP请求重定向到HTTPS。

解决此重定向问题的步骤将根据您使用的内容而有所不同。例如,Chrome用户可以通过访问chrome://net-internals/#hsts来禁用此重定向:

检查您的浏览器是否有自动HTTPS重定向

检查您的浏览器是否有自动HTTPS重定向

接下来,滚动到以下部分Delete domain security policies,然后输入您的 localhost 域。然后,您可以选择Delete,这应该会禁用Chrome对您的本地主机的重定向。

2. 允许传入连接

如果您无法通过localhost访问Web服务器,则您的防火墙可能会阻止连接。您通常可以通过修改防火墙设置以允许MAMP尝试访问的端口的传入连接来解决此问题。或者,您可以允许整个MAMP应用程序的连接。

如果您是macOS用户,您可以通过导航到Apple > System Preferences… > Security & Privacy来编辑防火墙设置。然后您可以选择Firewall选项卡:

macOS防火墙设置

macOS防火墙设置

要为整个MAMP应用程序启用传入连接,请选择Firewall Options。然后,您可以单击+ 图标,选择MAMP,然后选择Add。然后MAMP将被添加到您的允许应用程序列表中。

允许MAMP的所有传入连接

允许MAMP的所有传入连接

此时,请检查以确保MAMP应用程序配置为Allow incoming connections,然后单击OK。您的防火墙现在将允许MAMP的所有传入连接。

如果您使用的是Windows Defender,您应该在安装MAMP时收到防火墙通知。但是,您可以随时更改您的Windows防火墙权限,方法是导航到开始 > 设置 > 搜索“防火墙和网络保护”对防火墙设置进行必要的更改。

3. 检查MAMP的文档根目录

当您访问本地主机时,MAMP会显示文档根目录的内容。默认情况下,它位于/Applications/MAMP/htdocs,并且包含index.html 或index.php文件。

如果您移动或删除此索引文件,MAMP将不会加载任何内容。如果您错误地编辑索引文件,MAMP也可能难以显示任何内容。这可能会导致一系列错误,包括“localhost拒绝连接”消息。

您可以通过前往/Applications/MAMP/htdocs/来确定您是否无意中修改或移动了此重要文件夹。如果它不包含index.htmlindex.php文件,则可能会导致您的localhost错误。

还值得检查一下MAMP是否从正确的文件夹加载内容。如果您使用的是免费版本的MAMP,您可以在MAMP主窗口中检查根文档的位置:

检查MAMP文档根目录

检查MAMP文档根目录

如果您使用的是MAMP Pro,则此过程略有不同。您可以通过选择Hosts > General来验证根目录的位置。此屏幕将显示您的文档根文件路径:

检查MAMP设置中的文档根目录

检查MAMP设置中的文档根目录

如果您怀疑文档根目录可能存在问题,您只需选择打开方式, 然后选择您喜欢的文件管理器。这会将您直接带到文档根目录,您可以在其中检查文件夹的内容并进行任何必要的更改。

4.更改端口设置

MAMP等服务器程序需要对特定网络端口的独占访问权限。这使得多个程序可以在同一台机器上运行。

每个服务器都有一个默认端口。Apache Web服务器通常使用端口80,而MySQL数据库服务器使用端口3306。默认情况下,MAMP使用端口8888、8889和7888。但是,这些端口可能已经被其他程序或软件使用。

在这种情况下,您可以将MAMP配置为使用备用端口。如果您使用的是免费版本,则可以通过导航到MAMP > Preferences检查端口设置。然后选择Ports选项卡:

检查MAMP端口设置

检查MAMP端口设置

如果您使用的是MAMP Pro,您会在Ports & User选项卡中找到这些选项 。然后,您可以看到MAMP正在使用的确切端口:

检查MAMP Pro端口设置

检查MAMP Pro端口设置

如果MAMP已在使用备用端口,您可以尝试通过选择MAMP default来恢复默认设置。如果您是Pro用户,您可以单击Set default MAMP Ports按钮。这会将Apache、Nginx和MySQL的端口重置为8888、7888和8889。

或者,MAMP有一个803306按钮,可以将端口设置为最常用的值。修改端口设置后,直接在浏览器的地址栏中输入新的端口号可能会获得积极的结果,如http://<localhost>:8888/。

如果您仍然遇到localhost错误,您可以尝试将MAMP配置为使用完全随机的端口号,例如8814。然后您可以直接在Web浏览器中输入此地址 ( http://localhost:8814/ ) 以查看它是否解决了您的本地主机问题。

5. 验证您的Apache Web服务器是否正在运行

Apache是最常用的Web服务器之一。MAMP和MAMP Pro都提供此选项。但是,如果Apache服务器没有运行,您将很难连接到您的localhost。

您可以通过查看MAMP应用程序右上角的Stop/Start按钮来查看您的Apache服务器是否正在运行如果Apache Web服务器处于活动状态,此按钮将为绿色。如果您是MAMP Pro用户,您可以通过在左侧菜单中选择“Apache”来执行验证:

检查Apache Web服务器安装

检查Apache Web服务器安装

MAMP Pro用户还可以通过选择InfoStatus查看有关其Apache服务器的更多信息。如果服务器正在运行,这两个按钮将启动一个选项卡,其中包含有关Apache配置的更多信息。

Apache服务器状态

Apache服务器状态

如果您的Apache Web服务器未运行,则另一个MySQL服务可能正在使用相同的端口。如果您怀疑是这种情况,一种解决方案是退出您机器上的所有httpd进程。退出httpd进程的具体步骤会因您的操作系统而异。

Mac用户可以使用活动监视器识别和退出httpd进程。在Activity Monitor工具栏中,选择View > All Processes

查看活动监视器中的所有进程

查看活动监视器中的所有进程

Search 字段中,键入“httpd”。选择列表中的每个结果,然后单击 活动监视器左上角的停止图标:

在macOS中退出httpd进程

在macOS中退出httpd进程

退出每个httpd进程后,重新启动MAMP并尝试重新启动Apache Web服务器。

如果这不能解决您的问题,则您的httpd.conf.temp文件可能已损坏。一些MAMP Pro用户在重命名此文件后报告了积极的结果。

在本地计算机上,导航到~/Library/Application Support/appsolute/MAMP PRO/templates。然后,您可以将httpd.conf.temp重命名为http.conf.temp.bak。重新启动MAMP,并检查您的Apache服务器现在是否成功运行。

6. 重启Apache Web服务器

您还可以通过重新启动Apache Web服务器来解决“localhost拒绝连接”错误。要停止服务器,请 通过导航到应用程序 > 实用程序 > 终端来启动Mac的终端

在macOS中启动终端

在macOS中启动终端

或者,Windows用户可以启动命令提示符。然后运行以下命令:“sudo apachectl stop”。在终端或命令提示符窗口中,您应该看到以下消息:Operation now in progress

如果您修改了MAMP的端口设置,最好将它们恢复为默认值 (80/3306)。您可以导航到MAMP > Preferences… > Ports  (MAMP) 或Ports & User  (MAMP Pro)。在结果窗口中,选择MAMP default 

接下来,切换回终端或命令提示符,并运行以下命令:“sudo apachectl restart”。然后,您可以通过选择MAMP右上角的“Start / Stop”图标来重新启动Apache Web服务器。

7.重新安装MAMP

最后但同样重要的是,您可以通过卸载然后重新安装MAMP来解决此问题。请注意,卸载程序将删除位于db文件夹中的所有数据库。

如果您使用的是MAMP Pro,则该文件夹位于/Library/Application Support/appsolute/MAMP PRO/db中。如果要保留此信息,可以在卸载MAMP之前将文件移动到安全位置。

我们还建议记下您的Apache、MySQL和DynDNS端口号,因为某些内容管理系统 (CMS) 依赖于端口。您可以通过在MAMP的左侧菜单中选择Hosts然后打开General选项卡来找到此信息。

要卸载MAMP Pro,请选择MAMP PRO > Uninstall MAMP Pro。如果出现提示,请输入您的管理员用户名和密码:

卸载MAMP Pro

卸载MAMP Pro

卸载MAMP后,您将看到以下消息:MAMP Pro has been uninstalled successfully。您现在可以转到计算机的/Applications 文件夹,然后删除MAMP 文件夹。

现在您已经完全删除了MAMP,是时候重新安装它了!您可以从官方网站下载MAMP的新副本 ,然后正常安装该应用程序。

成功安装MAMP后,您可能需要恢复数据库。在您最喜欢的文件管理器中,导航到/Library/Application Support/appsolute/MAMP PRO/db。然后,您可以将db文件拖到该文件夹​​中。

小结

MAMP本地服务器环境对于 构建和测试您的网站非常有用。但是,如果您遇到“localhost拒绝连接”错误,您必须在继续之前解决它。

幸运的是,如果您确实遇到了这个问题,您可以采取一些步骤来解决它。我们建议通过尝试通过替代Web浏览器访问您的项目来测试问题是否是特定于浏览器的。您还可以通过修改防火墙设置和MAMP的端口配置来获得积极的结果。