溫馨提示×

ubuntu lamp故障排查怎么做

小樊
46
2025-09-25 01:03:59
欄目: 智能運維

Ubuntu LAMP故障排查指南

1. 確認問題現象

首先明確故障的具體表現(如無法訪問網站、頁面顯示500錯誤、MySQL無法連接等),記錄錯誤消息(如瀏覽器提示、命令行輸出),這有助于快速定位問題范圍(如Web服務、數據庫、PHP配置或權限問題)。

2. 檢查服務運行狀態

使用systemctl命令確認LAMP核心服務是否正常運行:

sudo systemctl status apache2    # 檢查Apache狀態
sudo systemctl status mysql      # 檢查MySQL狀態
sudo systemctl status php7.x-fpm # 檢查PHP-FPM狀態(根據PHP版本調整,如php8.1-fpm)

若服務未運行,使用sudo systemctl start <服務名>啟動;若啟動失敗,需進一步查看對應日志(如Apache的error.log)。

3. 查看錯誤日志

日志是故障排查的關鍵,常見日志路徑及查看方式:

  • Apache錯誤日志sudo tail -f /var/log/apache2/error.log(實時查看最新錯誤)
  • MySQL錯誤日志sudo tail -n 50 /var/log/mysql/error.log(查看最近50條錯誤)
  • PHP錯誤日志:若使用Apache,日志通常在/var/log/apache2/error.log;若使用PHP-FPM,檢查/var/log/php7.x-fpm.log(需提前開啟PHP錯誤日志功能)。

4. 驗證網絡與端口連通性

  • 測試網絡連通性ping www.baidu.com(若無法ping通,可能是服務器網絡故障或DNS問題);
  • 檢查DNS解析nslookup www.baidu.com(若解析失敗,修改/etc/resolv.conf添加可用DNS服務器,如nameserver 8.8.8.8);
  • 確認端口監聽sudo netstat -tuln | grep -E '80|3306|9000'(檢查Apache(80端口)、MySQL(3306端口)、PHP-FPM(9000端口)是否正常監聽);
  • 測試端口訪問:從本地機器使用telnet <服務器IP> 80(若無法連接,可能是防火墻或安全組阻止了端口)。

5. 檢查配置文件語法

  • Apache配置sudo apachectl configtest(檢查/etc/apache2/apache2.conf/etc/apache2/sites-available/下的虛擬主機配置是否有語法錯誤);
  • MySQL配置sudo mysqld --validate-config(驗證/etc/mysql/my.cnf/etc/my.cnf的配置合法性);
  • PHP配置php -m(檢查所需PHP模塊是否啟用,如mysqli、gd;若未啟用,編輯/etc/php/7.x/apache2/php.ini取消對應模塊前的注釋,如extension=mysqli.so)。

6. 確認文件權限

Web服務器(如www-data用戶)需要對網站目錄和文件有正確的訪問權限:

sudo chown -R www-data:www-data /var/www/html  # 將網站目錄所有者設為www-data
sudo chmod -R 755 /var/www/html               # 設置目錄權限為755(可讀可執行),文件權限為644(可讀可寫)

7. 排查端口沖突

使用netstatss命令檢查端口是否被其他進程占用:

sudo netstat -tulnp | grep ':80'  # 檢查80端口是否被占用
sudo netstat -tulnp | grep ':3306' # 檢查3306端口是否被占用

若端口被占用,可通過kill -9 <進程ID>終止占用進程,或修改對應服務的端口(如修改Apache端口,在/etc/apache2/ports.conf中更改Listen 80Listen 8080)。

8. 測試基礎功能

  • 測試Apache:在/var/www/html下創建info.php文件,內容為<?php phpinfo(); ?>,訪問http://服務器IP/info.php(若能顯示PHP信息頁面,說明Apache和PHP集成正常);
  • 測試MySQL:登錄MySQL控制臺mysql -u root -p(輸入root密碼),執行SHOW DATABASES;(若能顯示數據庫列表,說明MySQL連接正常)。

9. 重啟服務

完成配置更改或修復后,重啟相關服務使更改生效:

sudo systemctl restart apache2
sudo systemctl restart mysql
sudo systemctl restart php7.x-fpm

10. 其他常見問題排查

  • 依賴問題:若安裝或啟動時出現依賴錯誤,運行sudo apt-get install -f修復依賴;
  • 磁盤空間:使用df -h檢查磁盤空間(若/分區使用率超過80%,清理無用文件,如/var/log下的舊日志);
  • SELinux(若啟用):使用sestatus檢查SELinux狀態,若為Enforcing,可能需要調整策略(如setenforce 0臨時關閉,或修改/etc/selinux/config永久關閉)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女