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服务器