XAMPP:Deamon 已在运行,但它不是 apache

XAMPP:Deamon 已在运行,但它不是 apache

这个让我头疼...

我已经XAMPP for Linux 1.7.7在 Ubuntu 12.10 上安装了。我没有安装最新版本,因为新安全“功能”使其XAMPP过于安全,我无法运行它。但那是另一个故事。

安装并正常运行几个月后,现在我XAMPP: Another web server daemon is already running.在启动 XAMPP 时遇到了著名的错误。现在我已经在 Google 上进行了广泛的搜索,可以排除以下情况:

  • 没有其他Apache安装,只是XAMPP
  • 没有apache正在apache 2运行的服务
  • 没有正在运行使用port 80(已检查netstat -an grep -w 80)的服务

我也重新安装了xampp1.7.7,但结果是一样的。我想我已经尝试了谷歌前两个结果页面上的所有解决方案,但仍然没有找到解决方案。

有人能指点我如何找到Webdeamon已经运行的神秘事物吗?


我在 httpd.conf 中更改了 XAMPP 监听的端口,在我的情况下,该端口位于/opt/lampp/etc/文件夹中。我更改了 Listen 选项,因为这是唯一一个值为 80 的选项。但我仍然收到 Deamon already running-error 错误。

该命令的输出netstat如下:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1189/tntnet     
tcp        0      0 192.168.178.52:35048    91.189.94.25:80         ESTABLISHED 2350/ubuntu-geoip-p
tcp        0      0 192.168.178.52:35047    91.189.94.25:80         TIME_WAIT   - 

我已经终止了该ubuntu-geoip-p服务,但找不到终止 tcp 服务的方法,但我认为不必终止 tcp 服务即可启动 apache。无论如何,在此之后我仍然收到相同的错误。

还有其他建议吗?


lsof -i :80给出了不同的输出,我看到tntnet也使用了端口 80。卸载后tntnet,apache 正常启动。问题解决了!谢谢提供信息。

答案1

只需在终端运行此命令即可

sudo /etc/init.d/apache2 stop

在那之后

/opt/lampp/lampp/ start

答案2

@TedvG 更新于 2012 年 11 月 17 日

ubuntu-geoip-p正在连接到端口 80 上的远程 IP,因此它没有关系。

看起来 tntnet(另一个 Web 服务器,这解释了这一点)进程绑定了端口 80。您必须停止它(我猜service tntnet stop是吧,如果不终止进程,tntnet可能会kill -9 pid终止它)。您也可以通过完成tntnet包来卸载。

或者你可以更改 apache 端口,编辑lampp/etc/httpd.conf,将端口更改为 8080,例如:

#Listen 12.34.56.78:80
Listen 8080

使用启动lampp startapache


默认情况下,XAMPP 的 apache 使用端口 80(1024 以下的端口需要 root 权限),无论如何都可以通过编辑来更改$XAMPP/apache/conf/httpd.conf

你可以运行

lsof -i :80

或者

netstat -nap | grep :80

找出使用端口 80 的进程

例如,如果我在端口 8080 上使用 Python 的 SimpleHTTPServer 模块

$ lsof -i :8080
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  16484 terry    3u  IPv4 367600      0t0  TCP *:http-alt (LISTEN)

$ netstat -anp | grep :8080
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      16484/python

非常清楚。

答案3

因为我不知道是否需要tntnet,并且不想费力地寻找答案,所以最好的选择似乎是更改 Apache 使用的端口。

使用最新版本的 XAMPP,可以使用附带的 GUI 管理器轻松完成此操作:

  1. 启动管理器(manager-linux-x64.run在 64 位系统上使用):

    cd /opt/lampp
    sudo ./manager-linux.run
    
  2. 切换到“管理服务器”选项卡并选择“Apache Web 服务器”。点击配置

    XAMPP 服务器管理应用程序

  3. 将相应字段上的端口更改为,例如,8080然后单击好的

    配置 Apache Web 服务器对话框

  4. 单击从应用程序启动所有服务器全部开始

  5. 打开您最喜欢的浏览器并转到http://localhost:8080;它应该会自动重定向到http://localhost:8080/xampp

相关内容