对于WordPress开发人员来说,拥有一个可用的本地暂存环境是必不可少的。MAMP是一种流行的解决方案,但一些常见问题可能会阻止平台正常运行。
幸运的是,MAMP用户已经找到了解决这些问题的相当简单的解决方案,您可以使用它来让您的本地堆栈重新运行。通常,只需单击几下即可。
在本文中,我们将回顾MAMP是什么、它为什么有用以及如何找到它的错误日志。然后,我们将引导您了解MAMP无法启动的五个常见解决方案。
MAMP简介
MAMP是几个流行的本地开发平台之一。它将您的计算机变成一个服务器环境,可以在您处理网站时托管网站:
MAMP主页
MAMP使用Apache、MySQL和PHP,使其与WordPress高度兼容。有一个免费版本,或者您可以付费购买包含安装程序和其他功能的专有版本 ,以帮助您快速设置您的第一个站点并改善您的工作流程。
与本地托管的所有网站一样,您的MAMP开发或测试网站不会公开。这使您能够自由地构建或测试功能,而不必担心它会影响您的前端用户体验 (UX)。它还可以防止访问者偶然发现您半成品的网站。
此外,本地开发不需要互联网连接,因此您可以在任何地方工作。本地网站也往往加载速度更快,这可能会在一定程度上提高您的工作效率。完成网站的构建或更改后,您可以将其迁移到实时服务器。
我们在上一篇文章中介绍了如何安装MAMP 。在这个阶段,我们假设您已经在使用它但遇到了问题。
如何检查您的MAMP错误日志
查找MAMP错误日志非常简单。只需导航到保存安装的文件夹并打开日志文件夹。您应该会看到Apache、MySQL和PHP错误日志的文件:
MAMP错误日志文件
如果您遇到MAMP无法启动的问题,这应该是您的第一步。检查日志以查看是否有任何与问题相关的消息,以及它们是否提供了您可以采取的具体步骤来解决问题。这比试错法故障排除要快得多。
如果MAMP没有启动怎么办
MAMP用户遇到的一些常见问题包括Apache未启动和MySQL未启动。这两个问题都会阻止平台运行,使您无法访问本地站点。以下是一些可以帮助您解决这两个障碍的顶级解决方案,因此您可以重新开始工作。
1.恢复您的文档根文件夹
MAMP安装的文档根目录是存储虚拟主机的HTML、PHP和图像文件的位置。假设您有意或无意地更改或删除了您的文档根文件夹。在这种情况下,您可能会看到一条错误消息:“Apache couldn’t be started. Please check your MAMP installation and configuration”:
Apache无法启动。请检查您的MAMP安装和配置。
要解决此问题,您只需恢复文档根文件夹或告诉MAMP您已将其移动到何处。此过程因您使用的是Mac还是Windows机器而异,因为文件路径可能略有不同。但是,您应该能够在任一操作系统 (OS) 上执行以下步骤。
默认情况下,MAMP文档根目录位于macOS上的Applications/MAMP/htdocs或Windows上的C:MAMPhtdocs 。如果您知道您的新文档根文件夹在哪里,您可以通过导航到Applications (或C: ) >MAMP>conf>apache>httpd.conf打开您的MAMP配置文件,然后用新路径替换默认路径。
打开httpd.conf后,搜索提及“DocumentRoot”并替换所有位置的默认路径。保存文件,然后停止并重新启动MAMP。
或者,您可以通过MAMP控制面板选择新的文档根目录。打开Preferences窗口并选择Web Server选项卡:
MAMP Web服务器首选项
确保选择了Apache。然后,单击Document Root 旁边的Select按钮。这将打开一个Finder窗口,您可以在其中选择要用作文档根目录的文件夹。
选择正确的文件夹后单击选择,然后在MAMP首选项窗口中选择确定:
在Web Server首选项窗口中确认MAMP文档根目录
这将重置您的文档根目录并自动重新启动MAMP。然后Apache应该能够启动。
2. 改变你的监听端口
默认情况下,MAMP在端口8888上运行 Apache。如果此端口正被其他应用程序使用,则Apache将无法启动。
要解决此问题,您可以退出阻止Apache连接到端口8888的应用程序,或者更改MAMP配置文件中的侦听端口。
如果您想发现哪个应用程序阻塞了端口,您可以使用命令行来执行此操作。您需要输入的命令会因您的操作系统而异:
- macOS:
sudo lsof -nP -iTCP:$PORT | grep LISTEN
- Windows:
netstat -ab | more
这些应该返回一个进程标识符 (PID) 列表和它们正在运行的端口。您可以使用以下方法之一终止在您需要的端口上运行的进程以启动MAMP:
- macOS:
sudo kill -9 <PID>
- Windows:
taskkill /F /PID pid_number
执行上述命令时,请确保将$PORT
、<PID>
和pid_number
等占位符替换为适当的值。
如果要更改MAMP配置文件中的侦听端口,可以通过打开httpd.conf文件并将所有提及的“port 8888”更改为“port 8000”(或其他替代方法)来实现。保存文件,然后重新启动Apache。
此外,您可以在Preferences>Ports中更改Apache端口:
MAMP端口首选项
单击确定以保存您的更改。
3.杀死所有MySQL进程并重新启动MAMP
如果您的MAMP问题是由于MySQL而不是Apache,您可以尝试一些首选修复程序。该问题通常是由于在同一端口上运行了另一个MySQL服务。
最简单的解决方案是杀死所有MySQL进程并重新启动MAMP。在macOS上,您可以使用Activity Monitor来执行此操作,您可以在计算机的Utilities文件夹中找到它。
搜索“mysqld”,选择任何正在运行的进程,然后单击窗口左上角的X按钮退出它们:
通过活动监视器杀死活动的MySQL进程
Windows用户需要从开始菜单打开资源监视器:
Windows资源监视器应用程序
搜索mysqld.exe文件,右键单击它,然后选择结束进程(End Process)。退出计算机上的所有MySQL进程后,停止并重新启动MAMP。
4. 清除你的MySQL日志
如果杀死计算机上所有活动的MySQL进程无法启动MySQL,您可以尝试删除MySQL日志文件。这些存储在您的MAMP的db/mysql57目录中:
MAMP MySQL日志文件
它们应该命名为ib_logfile0、ib_logfile1等。备份日志文件,然后删除它们并重新启动MAMP。日志文件将在再次需要时自动重新生成。
5.删除mysql.sock.lock文件
MAMP必须将活动进程的进程标识符 (PID) 写入mysql.sock.lock 文件。如果此任务失败,则该文件将被留下而不是在该过程完成后被删除。
这将阻止MySQL启动,因为它将空的mysql.sock.lock文件与包含正在运行的PID的文件相同。要解决此问题,您需要手动删除该文件。
导航到您的MAMP文件( Mac上的Applications/MAMP 或Windows上的C:MAMP )并查找tmp文件夹。然后选择mysql 文件夹,搜索mysql.sock.lock文件,删除。与日志文件一样, 下次需要时会自动创建一个新的mysql.sock.lock文件。
小结
MAMP是许多WordPress专业人士和爱好者的本地开发解决方案之一(注意:它不是唯一的)。但是,可能会出现一些问题,这些问题会阻止您的服务器启动,并最终延迟您的工作流程。
在本文中,如果Apache或MySQL无法启动,我们将向您介绍五种可能的解决方案:
- 恢复您的文档根文件夹。
- 更改您的侦听端口。
- 杀死所有MySQL进程并重新启动MAMP。
- 清除您的MySQL日志。
- 删除mysql.sock.lock文件。