Apache 不在 OSX 中的 MAMP 中启动(但 MySQL 工作)

Posted

技术标签:

【中文标题】Apache 不在 OSX 中的 MAMP 中启动(但 MySQL 工作)【英文标题】:Apache not starting in MAMP (but MySQL working) in OSX 【发布时间】:2012-12-01 22:54:18 【问题描述】:

我已经让 MAMP 工作了几个月,并且最近安装了 PostgreSQL。它还建议安装 Apache,我这样做是为了确保 PostgreSQL 工作正常。然后我卸载了 PostgreSQL 和 apache 版本并尝试重新启动 MAMP。它启动了 mysql 数据库(绿灯),但 Apache 没有启动。我卸载并重新安装了 MAMP,只是遇到了同样的问题。

Apache 似乎没有在 MAMP 文件夹中记录任何错误,因此没有任何错误要报告,我正在努力从哪里开始修复它。我希望这与我安装了另一个导致问题的版本(并删除了它)有关,但我太缺乏经验,不知道我做了什么。

如果不在 MAMP 文件夹中,我在哪里可以找到任何错误?不在:

/Applications/MAMP/Library/logs /Applications/MAMP/bin/logs

【问题讨论】:

【参考方案1】:

也许是因为原来的 apache 是打开的。 您是否尝试过查看状态? 您可以尝试使用此命令将其停止“apachectl status”,然后重新启动 mamp 并查看它是否有效。

【讨论】:

【参考方案2】:

为了解决这个特殊问题,我重新安装了 PostgreSQL 和它附带的 apache 版本,然后我再次安装了 MAMP,MAMP 工作正常。

【讨论】:

【参考方案3】:

我遇到了同样的问题。在对没有描述性错误消息感到非常沮丧之后,我意识到我可以检查 Applications/Tools/System messages 下的“所有消息”日志(或一些类似的路径,因为我刚刚从我的这里的语言)。在那里我找到了解释,在我的情况下,这意味着库链接已损坏(可能是由于卸载了 postgres)。我通过重新创建链接解决了这个问题。就我而言,这意味着我必须在终端中运行以下命令:

sudo ln -s /usr/lib/libpq.5.3.dylib /usr/lib/libpq.5.dylib

现在它可以工作了!

【讨论】:

【参考方案4】:

将推荐的 Apache 端口从:端口 80 更改为端口 81。

【讨论】:

在这种情况下,您的 Skype 可能正在使用端口 80。转到 Skype 高级设置并更改它。【参考方案5】:

如果它在某一时刻工作正常,那么我猜你网络上的其他东西当前正在使用相同的端口来做其他事情。

我也遇到了这个问题:在我的情况下,我已将默认 MAMP Apache 端口从 8888 更改为 80。它工作正常,直到我在网络上的另一台机器上安装了 Web 服务器并在本地机器上调整了 /etc/hosts包括新服务器。这意味着 80 端口已经在使用,MAMP 的 Apache 无法启动。

解决方案是停止我网络上的第二个 Web 服务器,或者将 MAMP 恢复为 8888。两种方法都可以正常工作。

【讨论】:

【参考方案6】:

停止 Apache 为我解决了这个问题,使用命令行:

sudo apachectl stop

【讨论】:

你是怎么发现的? 反复试验 - 我得到了一些信息,一些端口被阻止,所以我试图解除阻止它们 /System/Library/LaunchDaemons/org.apache.httpd.plist:找不到指定的服务 KSPR - 这也是我得到的。但是,我在 El Capitan。但是 - 如果我直接在 MAMP 中启动 Apache 的话:“/Applications/MAMP/Library/bin/apachectl start” 它可以工作。好奇怪。 在 Sierra 10.12.3 中完美运行。 @Cage - 如果你得到“找不到命令”,你可能包括 $.实际的终端命令只是 sudo apachectl stop。 $ 只是表示 BASH 终端中的普通用户(相对于 root 用户)。您通常不输入 $,它已经存在。【参考方案7】:

我知道这是旧的,但以防其他人遇到这个。我的虚拟主机文件 (/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf) 中有错字,导致 Apache 无法启动。直到我手动尝试从命令行 (/Applications/MAMP/bin/startApache.sh) 启动 MAMP 版本的 Apache,我才看到错误并能够修复它。

【讨论】:

【参考方案8】:

我遇到了类似的问题,可以通过在命令行启动 MAMP 中包含的 apachectl 来解决它:

$ /Applications/MAMP/Library/bin/apachectl start

这会产生

Syntax error on line 427 of /Applications/MAMP/conf/apache/httpd.conf:
Invalid command '\xef\xbf\xbc#AllowOverride', perhaps misspelled or defined by a module not included in the server configuration

此错误消息不在其他任何地方,不在任何日志文件或系统控制台中。 (原来我从一个文档文件中复制了一行,其中复制了一些不适合我的系统的特殊字符 - 多么容易找到!)

这是针对 MAMP 2.0.1 的,也许在新版本中处理得更好。

【讨论】:

很好的答案,首先检查 httpd.conf 是否正常。我在文件中有一个错误,导致 Apache 无法正确启动与 mamp 无关 我可以像这样手动启动 apache,但它没有给我任何错误,而且 MAMP 仍然无法启动或停止它。 哇!为我工作!必须使用 sudo 获得 root 权限! $ /Applications/MAMP/Library/bin/apachectl start足以重启apache。 (48)地址已在使用中:make_sock:无法绑定到地址 [::]:80 (48)地址已在使用中:make_sock:无法绑定到地址 0.0.0.0:80 否监听套接字可用,正在关闭【参考方案9】:

如果您的 htdocs(或等效)文件夹存储在外部存储中,您可能需要在启动 apache 之前连接到它(在 finder 中,或使用 cmd + K)。

【讨论】:

【参考方案10】:

我遇到了这个问题,结果发现一个不是 vhosts 文件的 .txt 文件以某种方式保存到了我的 sites-available Apache 自动包含的文件夹中,并且预计每个文件都是 vhosts 文件。

【讨论】:

【参考方案11】:

在我的情况下,虚拟主机上的 ssl 证书有误。要进行测试,只需从所有 ssl vhost 中暂时停用 ssl 并查看它是否启动。注意:即使没有检查 ssl vhost。

【讨论】:

【参考方案12】:

对于那些升级到优胜美地的人来说,似乎有一个我不太了解但很容易修复的错误,正如他们在他们的 Twitter 帐户上发布的那样。

10.10 Preview 5 错误的解决方法:将位于“/Applications/MAMP/Library/bin”中的文件“envvars”重命名为“_envvars”(@mamp_en)

【讨论】:

它也可以在 Sierra 的 MAMP pro 3.0.5 中使用,但顶部的答案给了我错误“/System/Library/LaunchDaemons/org.apache.httpd.plist:找不到指定的服务”。感谢您的快速修复。【参考方案13】:

命令行有助于解决这个问题。像下面这样,

/Applications/MAMP/Library/bin/apachectl start

/Applications/MAMP/Library/bin/apachectl stop

【讨论】:

dyld:找不到符号:__cg_jpeg_resync_to_restart 引用自:/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO 预期在:/Applications/MAMP/Library/lib/libJPEG.dylib in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO /Applications/MAMP/Library/bin/apachectl:第 80 行:35578 跟踪/BPT 陷阱:5 $HTTPD -k $ARGV【参考方案14】:

还要确保您没有启动旧版本的 MAMP。这发生在我使用聚光灯查找 MAMP 时。当应用程序升级时,它会在您的应用程序文件夹中保留较旧的副本。

【讨论】:

【参考方案15】:

我浏览了所有 *** 帖子,但没有运气。最后,我遇到了这个: https://www.speakinginbytes.com/2013/02/mamp-problems/

有时 Apache 会通过 MAMP 设置打开特定文件夹,而该文件夹不再存在。如果你简单地去 MAMP 并改变它 通过首选项按钮设置,您应该能够修复它。

这对我有用。希望它会帮助别人!

【讨论】:

在我的特定实例中,我删除了除一台主机之外的所有主机。这对我有用。显然,自从我重新启动后,我的一个或多个主机已被删除,而 MAMP 没有识别出丢失的目录。【参考方案16】:

1) 退出 MAMP

2) 使用命令行运行:

$ sudo apachectl restart

3) 打开 MAMP 并启动 Apache

4) Apache 这一次应该运气好


我的情况是,当我使用命令行运行时:

$ sudo apachectl stop

什么都没有改变。而当我使用命令行运行时:

$ sudo apachectl start

我收到了消息

httpd (pid 600) already running

我尝试重新启动,但它起作用了。

【讨论】:

以上是关于Apache 不在 OSX 中的 MAMP 中启动(但 MySQL 工作)的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac 上为 MAMP 安装新的 PHP 版本 [关闭]

每次重新启动时都会重置 MAMP 配置设置

OSXOSX下采用MAMP的PHP替换系统自带PHP

将 osx 更新到 macOS Sierra 后 MAMP PRO 4+ 消失主机 /etc/hosts

MAMP “无法启动 Apache,因为端口正在使用中。” AND“无法通过 /tmp/mysql.sock 连接到本地 MySQL 服务器

MAMP 本地主机不工作