ESC

開始輸入,可搜尋發票、服務、域名、工單,以及 更多...

搜尋... Ctrl+K
寶塔面板

寶塔面板常見問題解決:面板打不開、502/504 錯誤、磁碟滿與忘記密碼

7 個步驟 8 分鐘閱讀 16 次閱讀 0
本文目錄

使用寶塔面板(aaPanel)時,最常遇到的問題是寶塔面板打不開、網站 502/504 錯誤、磁碟滿以及忘記面板密碼。本文按“先看現象、再查原因”的順序給出排查命令,適用於 Debian/Ubuntu 與 CentOS/Rocky/AlmaLinux 上的寶塔 Linux 面板。大多數操作都通過 SSH 執行,SSH 登入方法見“SSH 登入伺服器”教程。

步驟 1:寶塔面板打不開 —— 先確認正確的面板地址

新版寶塔安裝後會隨機生成面板埠和“安全入口”路徑,直接訪問 IP:8888 往往會提示入口校驗失敗或無法訪問。SSH 登入後執行 bt default,或執行 bt 開啟選單選擇 14(檢視面板預設資訊),即可看到完整的面板地址、埠和預設帳號。如果面板服務本身沒在執行,執行 bt restart 重啟。

# Show panel URL (with security entry), port and default account
bt default
# or open the menu and choose 14 (view panel default info)
bt

# Restart the panel service
bt restart
不同版本 bt 選單的編號可能略有差異,請以執行 bt 後螢幕上顯示的中文說明為準。若忘記的是安全入口,也可以在 bt 選單中找到“修改安全入口”相關選項重新設定。

步驟 2:檢查寶塔面板埠、系統防火牆與安全組

地址正確卻仍然打不開,通常是埠被攔截。先確認面板實際監聽的埠,然後在系統防火牆中放行(下面以 8888 為例,請替換為你的埠)。如果你在伺服器之外還設定了其他網路防護或安全策略,也需要同時放行該埠。另外,請檢查本地網路是否遮蔽了非常用埠,可以換手機熱點測試。

# Which port is the panel listening on?
cat /www/server/panel/data/port.pl
ss -lntp | grep -E "BT-Panel|python"

# Debian / Ubuntu (ufw)
ufw allow 8888/tcp && ufw status
# CentOS / Rocky / AlmaLinux (firewalld)
firewall-cmd --permanent --add-port=8888/tcp && firewall-cmd --reload

步驟 3:忘記寶塔面板密碼或使用者名稱

SSH 登入伺服器,執行 bt 開啟管理選單,輸入 5 修改面板密碼,輸入 6 修改面板使用者名稱,按提示輸入新值即可,修改後立即生效。若之前修改過埠也記不清了,可以用 8 重新設定面板埠(記得在防火牆放行新埠)。

bt
# 5  -> change panel password
# 6  -> change panel username
# 8  -> change panel port
面板密碼請設定為 12 位以上的強密碼,並開啟寶塔的安全入口與訪問限制,具體可參考“寶塔面板安全設定”教程。

步驟 4:PHP 網站出現 502 Bad Gateway

502 表示 Nginx 無法從 PHP-FPM 拿到響應,常見原因是 PHP-FPM 程序崩潰、沒有啟動或程序數被佔滿。先檢查程序和 sock 檔案是否存在,再重啟對應版本的 PHP,並檢視網站錯誤日誌與 PHP-FPM 日誌定位原因。若日誌中頻繁出現 “server reached pm.max_children”,請在面板 PHP 設定的“效能調整”中適當提高子程序數(注意記憶體是否足夠)。

# Is PHP-FPM running? (74 = PHP 7.4, adjust to your version)
ps aux | grep php-fpm | head
ls -l /tmp/php-cgi-74.sock
/etc/init.d/php-fpm-74 restart

# Read the logs
tail -n 50 /www/wwwlogs/example.com.error.log
tail -n 50 /www/server/php/74/var/log/php-fpm.log
tail -n 50 /www/server/php/74/var/log/slow.log

步驟 5:PHP 網站出現 504 Gateway Timeout

504 表示 PHP 執行時間過長,超過了 Nginx 的等待時間,常見於大檔案匯入、採集指令碼或慢 SQL。先通過 slow.log 和資料庫慢查詢找出慢的程式;確實需要長時間執行時,在站點的 Nginx 配置中加大 FastCGI 超時,並同步提高 php.ini 中的 max_execution_time。

# Inside the site's Nginx config (location ~ \.php$ or server block)
fastcgi_connect_timeout 60s;
fastcgi_send_timeout    300s;
fastcgi_read_timeout    300s;

步驟 6:修改配置後用 nginx -t 測試

手動修改站點配置、偽靜態或新增 SSL 後,若 Nginx 無法啟動或所有網站打不開,首先測試配置語法。nginx -t 會指出出錯的檔案和行號,修正後再 reload。若提示 80/443 埠被佔用,用 ss 檢視是哪個程式佔用。

/www/server/nginx/sbin/nginx -t
/etc/init.d/nginx reload

# Debian / Ubuntu / CentOS: see what holds port 80/443
ss -lntp | grep -E ":80 |:443 "

步驟 7:磁碟已滿導致面板和網站異常

磁碟寫滿後會出現面板無法登入、MySQL 停止、網站報錯等連鎖問題。按下面命令找出佔用最大的目錄:常見的“大戶”是網站日誌 /www/wwwlogs、本地備份 /www/backup 和 MySQL 二進位制日誌。正在被寫入的日誌請用 truncate 清空而不是直接刪除。也要用 df -i 檢查 inode 是否耗盡(大量小檔案、session 檔案常見)。更多清理思路見“磁碟空間不足處理”教程。

df -h
df -i
du -h --max-depth=1 /www 2>/dev/null | sort -h | tail -n 15
du -sh /www/wwwlogs /www/backup /www/server/data 2>/dev/null

# Empty (not delete) a huge log that is still open
truncate -s 0 /www/wwwlogs/example.com.log

# Purge old MySQL binary logs (run in mysql -uroot -p)
PURGE BINARY LOGS BEFORE NOW() - INTERVAL 3 DAY;

常見問題

bt 命令提示 “command not found”?

可以改用 /etc/init.d/bt default 或 /etc/init.d/bt restart。如果該檔案也不存在,說明面板檔案損壞,可在備份資料後用官方指令碼修復或重新安裝面板。

重啟 PHP 後 502 很快又出現?

多半是記憶體不足或子程序數設定過高導致程序被系統殺掉,檢查 free -m 和 dmesg 中的 OOM 記錄,適當降低子程序數或新增 Swap(參考“Linux 新增 Swap”教程),必要時升級配置。

面板能開啟,但登入後提示“IP 受限”或“域名受限”?

說明之前設定了授權 IP 或繫結域名。在 bt 選單中選擇對應的“取消 IP 訪問限制”或“取消域名繫結”選項即可恢復訪問。

如按以上步驟仍無法解決,請提交工單聯絡 IMIDC 7×24 技術支援,並附上伺服器 IP、作業系統版本、執行過的命令和報錯截圖,方便工程師快速定位問題。

這篇文章有幫助嗎?

相關教程