溫馨提示×

ubuntu上php如何調試

小樊
33
2025-10-20 18:51:49
欄目: 編程語言

Ubuntu上PHP調試的常用方法

1. 基礎調試方法(適合快速排查簡單問題)

  • 開啟錯誤顯示:修改php.ini文件(通過php --ini命令查找路徑),將display_errors = Off改為display_errors = On,并確保error_reporting = E_ALL(顯示所有錯誤)。重啟Web服務器(Apache用sudo systemctl restart apache2,Nginx+PHP-FPM用sudo systemctl restart php{版本號}-fpm && sudo systemctl restart nginx)后,錯誤信息會直接顯示在瀏覽器中。
  • 記錄錯誤日志:在php.ini中設置log_errors = Onerror_log = /var/log/php_errors.log(自定義日志路徑),錯誤信息會寫入該文件。使用tail -f /var/log/php_errors.log實時查看日志,避免敏感信息泄露給用戶。
  • 使用print_r()/var_dump():在代碼中插入print_r($variable)var_dump($variable),輸出變量值或數組結構。適合快速檢查變量狀態,但需手動刪除調試代碼。
  • 日志記錄函數:用error_log('調試信息', 0)將自定義信息寫入error_log文件,適合跟蹤代碼執行流程。

2. 使用Xdebug進行專業調試(適合復雜項目)

Xdebug是PHP強大的調試擴展,支持斷點、變量查看、堆棧跟蹤等功能,需結合IDE(如PhpStorm、VSCode)使用。

(1)安裝Xdebug

通過Ubuntu包管理器安裝(推薦):

sudo apt-get update
sudo apt-get install php-xdebug  # 根據PHP版本調整,如php8.2-xdebug

或通過PECL安裝(需提前安裝php-pearphp-dev):

sudo pecl install xdebug

(2)配置Xdebug

編輯php.ini文件,添加以下配置(根據PHP版本調整路徑):

[Xdebug]
zend_extension=xdebug.so  # 自動加載擴展(包管理器安裝時無需指定路徑)
xdebug.mode=debug         # 啟用調試模式
xdebug.client_host=127.0.0.1  # 調試客戶端地址(本地為127.0.0.1)
xdebug.client_port=9003   # 調試端口(默認9003,需與IDE一致)
xdebug.start_with_request=yes  # 自動啟動調試(或設為"trigger"通過Cookie觸發)
xdebug.idekey=PHPSTORM    # IDE標識(如PHPStorm、VSCode)

重啟Web服務器使配置生效。

(3)IDE配置示例(以VSCode為例)

  • 安裝PHP Debug擴展(作者:Felix Becker)。
  • 創建.vscode/launch.json文件,添加以下配置:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "stopOnEntry": false,
            "log": true,
            "pathMappings": {
                "/var/www/html": "${workspaceFolder}"  // 映射項目路徑(服務器路徑:本地路徑)
            }
        }
    ]
}
  • 啟動調試:點擊VSCode左側“調試圖標”→選擇“Listen for Xdebug”→在瀏覽器中訪問PHP頁面(需攜帶Xdebug Cookie,可通過擴展如“Xdebug Helper”自動設置)。

(4)開始調試

  • 在IDE中打開項目,在代碼行號左側點擊設置斷點。
  • 啟動調試會話(如VSCode的“Listen for Xdebug”)。
  • 在瀏覽器中訪問目標PHP頁面(如http://localhost/index.php),代碼執行到斷點時會暫停。
  • 使用IDE的調試工具(步進、步出、繼續、查看變量、調用堆棧)排查問題。

注意事項

  • 生產環境務必關閉display_errors(設為Off),避免泄露敏感信息。
  • Xdebug會降低PHP執行速度,調試完成后建議關閉(將xdebug.mode設為off)。
  • 若使用防火墻,需開放Xdebug端口(默認9003),如sudo ufw allow 9003。

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