溫馨提示×

ubuntu phpstorm遠程調試方法

小樊
37
2025-10-21 05:42:13
欄目: 編程語言

Ubuntu下PhpStorm遠程調試PHP代碼步驟

1. 安裝Xdebug擴展

在Ubuntu遠程服務器上,通過終端安裝Xdebug擴展(以Ubuntu 22.04+、PHP 8.1為例):

sudo apt update
sudo apt install php-xdebug

安裝完成后,Xdebug會自動集成到PHP環境中,但需進一步配置。

2. 配置Xdebug參數

編輯PHP配置文件(根據PHP運行模式選擇對應文件,如Apache用apache2/php.ini,PHP-FPM用fpm/php.ini):

sudo nano /etc/php/8.1/apache2/php.ini

在文件末尾添加以下配置(關鍵參數說明見注釋):

[xdebug]
zend_extension=xdebug.so                # Xdebug擴展路徑(Ubuntu自動填充)
xdebug.mode=debug                       # 啟用調試模式
xdebug.client_host=192.168.1.100        # 本地機器(PhpStorm所在)的IP地址
xdebug.client_port=9003                 # 調試端口(需與PhpStorm設置一致)
xdebug.start_with_request=yes           # 自動啟動調試(可選:trigger/yes)
xdebug.idekey=PHPSTORM                  # IDE標識(需與PhpStorm一致)

保存文件后,重啟Apache服務使配置生效:

sudo systemctl restart apache2

注意:若使用PHP-FPM,需重啟php8.1-fpm服務;client_host需替換為本地機器的實際IP(可通過ip a命令查看)。

3. 配置PhpStorm遠程解釋器

  1. 打開PhpStorm,點擊頂部菜單File > Settings(或Ctrl+Alt+S)。
  2. 導航至Languages & Frameworks > PHP > Servers,點擊+添加新服務器:
    • Name:自定義服務器名稱(如Remote Ubuntu Server)。
    • Host:遠程服務器的IP地址或域名(如192.168.1.100)。
    • Port:Web服務器端口(默認80443)。
    • Debugger:選擇Xdebug。
  3. 點擊Test Connection驗證與遠程服務器的連接(需確保網絡可達),確認后點擊OK保存。

4. 配置調試監聽端口

  1. Settings窗口中,導航至Languages & Frameworks > PHP > Debug。
  2. 確認Debug port設置為與Xconfig中client_port一致的值(如9003)。
  3. (可選)勾選Use path mappings,將本地項目目錄映射到遠程服務器目錄(如本地/home/user/project映射到遠程/var/www/html/project),避免路徑錯誤。

5. 啟動遠程調試會話

  1. 在PhpStorm中打開遠程項目(通過Deployment配置同步遠程代碼至本地,或直接打開本地副本)。
  2. 在代碼行號左側點擊設置斷點(紅色圓圈)。
  3. 點擊頂部工具欄的電話聽筒圖標(Start Listening for PHP Debug Connections),啟動調試監聽。

6. 觸發斷點調試

在瀏覽器中訪問遠程PHP應用,需在URL中添加Xdebug會話參數(以Chrome為例):

http://192.168.1.100/project/index.php?XDEBUG_SESSION_START=PHPSTORM

或安裝Xdebug Helper瀏覽器插件(設置IDE Key為PHPSTORM),點擊插件圖標即可觸發調試。
當代碼執行到斷點時,PhpStorm會自動切換至調試視圖,可查看變量、調用堆棧、單步執行(F7/F8)等。

常見問題排查

  • 無法連接:檢查本地機器防火墻是否允許client_port(如9003)的入站連接;確認client_host為本地正確IP。
  • 端口沖突:若9003端口被占用,修改php.ini中的client_port為其他端口(如9004),并同步更新PhpStorm設置。
  • 路徑映射錯誤:確保Servers配置中的Path mappings正確,否則斷點無法命中。

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