如果我有另一个 apache/web-server 实例正在运行,我昨天已经痛苦地分析了所有这些命令
ps aux
ps -e
lsof
netstat tunap
我没有另一个 Apache 实例或在端口 8080 上运行的任何其他服务器。
然而,XAMPP 给了我这个:
XAMPP: Another web server daemon is already running
我应该怎么办?
我还编辑了 httpd.conf 来监听端口 9876,还是一样。
sudo rm /opt/lampp/logs/httpd.pid
// get listen pid
sudo netstat -nap | grep :80
输出示例:
tcp6 0 0 :::80 :::* LISTEN 14417/httpd
PID 为 14417
杀死进程
sudo kill 14417
启动/重启lampp服务器
sudo /opt/lampp/lampp restart
如果:
lsof -Pi |grep 8080 returns no results
netstat -na |grep 8080 returns no results
ps -ef shows no web server processes
那么也许有一个锁定文件位于启动正在检查的地方?这些通常可以在 /var/run 下找到,但不一定非要如此。在这一点上,我通常会运行 strace 来查看发生了什么:
strace -e read=all -e write=all -f -o strace.out your_startup_command
然后打开 strace.out,在输出中搜索“..is already running”字符串,并开始查看其上方的行以查看失败的原因。
我也没有运行任何服务器,但我发现这个命令救了我:
sudo lsof -i :80
它为我显示了这样的内容:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Skype 4275 root 61u IPv4 0x869da9d5a8e5506b 0t0 TCP *:http (LISTEN)
因此,杀死 Skype 使其工作。
注意启动脚本中的端口检查
如果您将 xampp apache 更改为侦听另一个端口(/opt/lampp/etc/httpd.conf -->“Listen 80”现在是“Listen 82”),那么您还必须更改 / 中的端口检查opt/lampp/xampp 启动脚本。
只需在 /opt/lampp/xampp 中搜索与
'Another web server is already running.'
并在前几行中搜索:
if testport 80
将其更改为:
if testport 82
有了它,您可以在端口 82 上启动一个 xampp,并让您的常规网络服务器在端口 80 上运行。
sudo /etc/init.d/apache2 stop
sudo /etc/init.d/mysql stop
sudo /etc/init.d/proftpd stop
这个解决方案似乎有效。您必须重新启动lampp:
sudo /opt/lampp/lampp restart
在出现类似问题后针对 Ubuntu 12.04 测试的解决方案。
下面的命令应该对我有用
sudo service apache2 stop
然后
sudo /opt/lampp/lampp restart
我解决了禁用 ssl 端口的问题
sudo /opt/lampp/lampp disablessl
接着
sudo /opt/lampp/lampp start
上述解决方案对我不起作用。但是这个解决方案确实 -
sudo apachectl stop
如果 XAMPP GUI 可用,则重新启动 apache、mysql 或从终端重新启动(在 Ubuntu 中) -
sudo /opt/lampp/lampp restart
您可以使用以下命令从命令外壳执行此操作:
sudo netstat -ltnp | grep :80
在最后一列中,您将看到:pid / process_name。您可以稍后使用以下命令来停止进程:
ps aux | grep process_name
在此之后尝试重新启动lampp,使用::sudo /opt/lampp/lampp restart
首先运行sudo xampp
它应该显示可用操作的列表。如果不是,那么xampp安装有问题(这是另一个问题)。
第二次运行sudo /opt/lampp/manager-linux-x64.run
这将打开一个 GUI。在 GUI 中,您可以启动和停止服务器(apache、sql)。它可能在大多数情况下都有效。
如果它不是在 GUI 中启动,则更改端口。(有一个选项可以在 GUI 中更改端口)。现在它可能会起作用。
如果 GUI 选项不适合您,请尝试下一步。
选项 1. 打开/opt/lampp/logs/error_log
文件并读取最后 10 行。
在我的情况下,错误是
could not bind to address [::]:80
. 这通知端口 80 被另一个服务使用。选项是,更改我们的 apache 服务器端口GUI
或/opt/lampp/properties.ini
文件(“有时您必须注销系统并再次登录才能工作。”)或停止使用此端口的服务器。提示:这里使用 80,所以尝试 81 等等。
选项 2. 执行以下步骤。
停止 xampp
sudo xampp stop
然后
sudo /etc/init.d/apache2 stop
sudo /etc/init.d/mysql stop
sudo /etc/init.d/proftpd stop
然后
启动 xampp
sudo xampp start
下面的命令应该在所有情况下都可以停止 Mysql 服务:
sudo service mysql stop
使用以下命令点击此启动lampp服务后:
sudo /opt/lampp/lampp start