簡體   English   中英

XAMPP:另一個 Web 服務器守護進程已經在運行?

[英]XAMPP: Another web server daemon is already running?

如果我有另一個 apache/web-server 實例在運行,我已經痛苦地分析了昨天的所有這些命令

ps aux
ps -e
lsof 
netstat tunap

我沒有在端口 8080 上運行的另一個 Apache 實例或任何其他服務器。

然而,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 使它起作用。

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 測試的解決方案。

注意啟動腳本中的端口檢查

如果您將 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 上運行。

我通過禁用 ssl 端口解決了這個問題

sudo /opt/lampp/lampp disablessl

進而

sudo /opt/lampp/lampp start

下面的命令應該對我有用

  sudo service apache2 stop

然后

  sudo /opt/lampp/lampp restart

上述解決方案對我不起作用。 但是這個解決方案確實 -

sudo apachectl stop

如果 XAMPP GUI 可用或從終端重新啟動(在 Ubuntu 中),然后重新啟動 apache、mysql -

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 被另一個服務使用。 選項是,在GUI/opt/lampp/properties.ini文件中更改我們的 apache 服務器端口(“有時您必須注銷系統並再次登錄才能工作。”)或停止使用此端口的服務器。

提示:這里使用了 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM