[英]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.