XAMPP Apache Web服务器在MAC OS上的本地主机无法工作

68

我在MAC OS 10.6上安装了XAMPP服务器,一开始它运行得很好。但是过了一些天我再次检查时,这一次出现了问题,本地主机无法打开。

经过一番研究后,我卸载并重新安装了XAMPP服务器。

当我重新启动apache之后,它提示端口80正在运行另一个Web服务器。然后我重新启动系统,apache正常启动,但是本地主机仍然无法工作。

接着我检查了系统偏好设置中的Web Sharing选项,发现它已经被关闭了...

请问有人能告诉我我错在哪里了吗?


这个错误发生在启动Apache服务器时............另一个Web服务器已经在运行!...............当另一个Web服务器正在使用端口80时,XAMPP的Apache无法启动。请关闭它并重试。 - Amit Battan
使用127.0.0.1可以工作,但是无法使用localhost......即使将其设置到/Developer/usr/etc/distcc/hosts文件中......127.0.0.1 localhost - Amit Battan
17个回答

222

这是帮助我的方法:

sudo apachectl stop

这个命令杀死了预安装在 MAC OS X 上的 Apache 服务器。


63

我不得不禁用OSX自带的Apache服务器(XAMPP支持主题):

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

这使得XAMPP可以在80端口启动,而POW运行在20559端口。

失败的原因:我重新配置了/etc/apache2/httpd.conf以侦听替代端口并重新启动了OSX,但没有成功。


有时候,重新启动OSX会阻止XAMPP在80端口启动,即使Web Sharing已经关闭。解决方法是先打开再关闭Web Sharing,然后XAMPP就能启动了。 - Steve Clay
这个解决方案对我有用。但是我不确定它做了什么。如果需要,我该如何启用默认的Apache呢?谢谢。 - pal4life
十年过去了,这个解决方案仍对我有效。 - Addy
在 M1 Mac 上运行得非常顺畅。 - konnovdev
不行。试图停止或禁用Apache只会出现/System/Library/LaunchDaemons/org.apache.httpd.plist: 找不到指定的服务,而XAMPP的Apache仍然无法启动。唉,如果互联网上有一些可行的指南,教我如何在Mac上运行Apache、PHP、MySQL和phpMyAdmin就好了。这些晚上都是熬到凌晨6点,除了在无数个Stack Overflow帖子上留下抱怨的评论,什么都没做成。 - undefined

56

尝试

sudo /Applications/XAMPP/xamppfiles/bin/apachectl start

在终端中


36

这个解决方案对我非常有效。

1)关闭XAMPP控制器

2)打开活动监视器(启动台->其他->活动监视器)

3)选择所有进程的筛选器(默认为我的进程)

4)在全文搜索中输入:httpd

5)杀死所有httpd项目

6)重新启动XAMPP控制器并再次启动apache

耶! :)


3
太妙了!虽然我只是在终端中执行了相同的操作:$ sudo killall httpd。 谢谢! - Reid
终端中的sudo命令对我没有任何作用。我去了AM并杀死了两个httpd,但它们又出现了...我该怎么办? - Teodora
我有一个问题,为什么当我点击XAMPP APP的STOP时,xampp apache服务没有停止? - lighter
谢谢。我每次重启电脑都需要这样做吗? - molerat
哇,一个有效的答案。谢谢! - undefined

22

要实现这一点,您需要从终端停止apache。

sudo apachectl stop

完成这些步骤后,您的Apache服务器将再次启动并运行!

希望这有所帮助。


此答案与先前的答案完全相同。如果您有什么要补充或改进的,请建议对原始答案进行编辑。 - JonathanDavidArndt
这篇答案也有帮助我。 - mehmoodnisar125
不行。httpd: Syntax error on line 178 of /private/etc/apache2/httpd.conf: Cannot load /opt/local/lib/apache2/modules/mod_php82.so into server: dlopen(/opt/local/lib/apache2/modules/mod_php82.so, 10): image not found 不过,公平地说,这可能是因为我整晚都在尝试从SO上找到的“答案”,现在一切都乱七八糟了。 - undefined

16

使用命令行运行xampp服务

启动Apache服务

sudo /Applications/XAMPP/xamppfiles/bin/apachectl start

启动MySQL服务

sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start

这两个命令都能完美运行 :)


14

这是因为在 Mac OS X 中已经预装了 Apache。所以你可以改变其中一个 Apache 的监听端口,无论是通过 XAMPP 安装的 Apache 还是预安装的 Apache。

要更改 XAMPP Apache 的监听端口,请前往 /Applications/XAMPP/xamppfiles/etc 并编辑 httpd.conf 文件。将 "Listen 80" (80 是默认的监听端口) 改为其他端口,例如 "Listen 1234"。

或者,

要更改预装的 Apache 的监听端口,请前往 /etc/apache2 目录。您可以在那里找到 httpd.conf 文件并进行相同的更改操作。

更改完成后,您可能需要重新启动 Mac 以确保更改生效。


5

我遇到了这个问题,上述解决方案对我来说并不太清晰。

我的解决方法是:

关闭蓝牙!这很有效。。

当我将我的Macbook Pro连接到iPhone5(热点)时,我开始收到错误消息,但是在关闭蓝牙后,错误消息消失了。希望能对某些人有所帮助!


5

在将MongoDB集成到XAMPP后,我遇到了类似的问题。然而,执行命令“sudo apachectl stop”解决了这个问题。


另一个提示...尽可能避免使用默认端口号。我将其更改为90。 - BKP

4

如果您同时运行Skype,会出现以下错误:

端口80正在运行另一个Web服务器

首先关闭Skype并重新启动Apache,它就可以正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接