Mac Apache Web 服务器将不再启动并且找不到任何 Web 目录

Posted

技术标签:

【中文标题】Mac Apache Web 服务器将不再启动并且找不到任何 Web 目录【英文标题】:Mac Apache web server won't start anymore and can't find any web directories 【发布时间】:2017-03-14 16:35:02 【问题描述】:

我使用的是 Mac Yosemite 10.10.5。 Apache Web 服务器突然不再启动。我尝试将端口更改为 8080。还尝试了 sudo apachectl stop 和 sudo apachectl start。还是打不开。

我认为这可能是在添加新打印机并启用打印共享后发生的。我把它关了,它仍然无法启动。我不记得我运行的哪个命令给了我这个包含更多细节的消息。

更新:当我使用sudo apachectl start 时,我注意到服务器可以通过浏览器访问,即使界面仍然显示已停止,但是当我转到 localhost/webdirectory 时,我只是找不到。

【问题讨论】:

【参考方案1】:

经过 48 小时的研究,我找到了这个可行的解决方案,我找到了解决方案 here:禁用 OSX 的内置 Apache 服务器。

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

这允许 XAMPP 在 80 上启动,而 POW 在 20559 上运行。

【讨论】:

这在 MacOS High Sierra 10.13.6 上仍然有效。更新到 10.13.5 后,我的 MAMP apache 服务器无法在端口 80 上加载,运行此命令后,我能够正常运行它 我很高兴知道这仍然对你有用@IvanHušnjak 非常感谢,你拯救了我的一天:D 哦,天哪,非常感谢,不知道为什么,但您的解决方案也帮助了我! @dulerong 我很高兴这有帮助,即使现在已经 3 年零几个月了。【参考方案2】:

您必须以 root 用户身份运行该命令。

sudo apachectl stop

sudo apachectl start

【讨论】:

第一个屏幕截图显示权限错误。使用 sudo 时会出现什么错误? 这是我得到的:Omars-iMac:~ Omar$ sudo apachectl start /System/Library/LaunchDaemons/org.apache.httpd.plist:操作已经在进行中 我已经添加了上面的截图。服务器仍然显示已停止,并且不再打开 localhost/ 内的任何 Web 目录 "服务器仍然显示已停止" .... 您是如何获得此信息的?我没有看到任何显示它已停止的屏幕截图。 我看到了你最新的屏幕截图。服务器管理器显示它已停止但您收到网页和“操作已在进行中”错误似乎很奇怪。【参考方案3】:

根据我之前运行命令apachectl configtest 的经验,将显示您可能遇到的任何配置错误。如果一切正常,它将打印Status OK,否则它将显示配置错误。修复这些,然后重试apachectl start

【讨论】:

我得到:|||| AH00558:httpd:无法使用 Omars-iMac.local 可靠地确定服务器的完全限定域名。全局设置“ServerName”指令以禁止显示此消息语法 OK。 ||||服务器的名称是:ServerName localhost 嗯,出现该错误是因为您的 ServerName 未在您的 httpd.conf 文件中设置。您需要编辑httpd.conf 并在ServerAdmin 之后添加行ServerName localhost。保存并重启 apache。 我添加了另一个屏幕截图。我已经在那里列出了 ServerName localhost 假设您可以以root身份运行命令,请运行httpd -t。只需确保您在 httpd.conf 文件中使用的语法是正确的。 奇怪的是我得到了同样的错误:httpd:使用 Omars-iMac.local 无法可靠地确定服务器的完全限定域名。全局设置“ServerName”指令以禁止显示此消息【参考方案4】:

我在终端中使用以下代码解决了这个问题。你可以试试看。

sudo /Applications/XAMPP/xamppfiles/bin/apachectl start sudo /Applications/XAMPP/xamppfiles/bin/mysql.server 启动

【讨论】:

【参考方案5】:

我找到了一个可以定位您的问题的命令。在终端输入: apachectl 配置测试

【讨论】:

在使用现有答案添加旧问题的答案时,指出您的答案为问题带来了哪些新内容很有用。在这种情况下,Radu 的答案似乎已经包含 apachectl configtest 并讨论了如何解释结果。【参考方案6】:

这对我有用:

sudo launchctl load -w /Applications/Server.app/Contents/ServerRoot/System/Library/LaunchDaemons/com.apple.serviceproxy.plist

【讨论】:

【参考方案7】:

通过运行service 直接通过.plist 文件来解决这个问题。

在那之后,服务人员向我解释到底发生了什么。

就我而言,我是删除/var/log 中的apache2 文件夹。

当我尝试通过命令运行 httpd 时:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

答案是空的。

在编辑器中打开org.apache.httpd.plist, 您需要<string><key>ProgramArguments\<key> 之后的服务路径 问候!

【讨论】:

【参考方案8】:

你可以尝试在没有 DocumentRoot 的情况下启动 Apache,这只是一个技巧。

sudo apachectl -T

【讨论】:

以上是关于Mac Apache Web 服务器将不再启动并且找不到任何 Web 目录的主要内容,如果未能解决你的问题,请参考以下文章

在Mac OS X上设置虚拟主机(vhost)并优雅地重新启动Apache Web服务器

Mac上搭建Web服务器--Apache

Mac上搭建Web服务器

Apache web服务软件安装启动负载均衡反向代理配置

Mac OS X取消Apache(httpd)开机启动(转载)

mac下搭建http服务器(apache+php),使用homebrew升级php