服務器安裝Xdebug並開啓phpstorm監聽瀏覽器或postman或eolinker遠程調試全過程親測記錄

前言

如需瞭解Vagrant下CentOS的box安裝Xdebug並開啓phpstorm監聽瀏覽器或postman或eolinker遠程調試全過程,請點我

由於配置過程涉及IP、域名、項目目錄,因此統一在這裏先約定了,以便對照

服務器IP:192.168.1.8(假設這是公網IP)
客戶機IP:192.168.1.16(也就是開發機)
項目名稱:kol_server
項目所在客戶機目錄:E:\wwwroot\kol_server
項目所在服務器目錄:/home/wwwroot/kol_server
vagrant目錄映射:E:\wwwroot=》/home/wwwroot/
項目域名:admin.kol.test.com
項目php版本:7.3

準備工作

登錄先登錄服務器,切換用戶到root用戶

安裝xdebug

選擇需要下載的xdebug擴展源碼包:https://xdebug.org/download
這裏我們假設一個場景:
環境用的是lnmp.org所提供的lnmp1.6版一鍵安裝包,PHP版本用的是php-7.3.11
下載的擴展源碼包我打算放在/home下,我打算安裝的xdebug擴展版本是Xdebug 2.9.5,那下載後源碼包的路徑是:

/home/xdebug-2.9.5.tgz
考慮到操作的便捷性此處用一句話命令囊括安裝的命令:

cd /home && wget https://xdebug.org/files/xdebug-2.9.5.tgz && tar zxvf xdebug-2.9.5.tgz && cd xdebug-2.9.5 && phpize && ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install

至此擴展已經安裝完成


現在開啓剛安裝的擴展

編輯php.ini文件

vi /usr/local/php/etc/php.ini

在末尾加上
特別注意不是extension=xdebug.so是zend_extension=xdebug.so,否則會報Xdebug MUST be loaded as a Zend extension

zend_extension=xdebug.so

重啓php,如果你用的也是lnmp,那就執行

lnmp restart

最後驗證擴展是否成功安裝並生效,執行以下命令:

php -m

看到如下截圖表示已經成功:
在這裏插入圖片描述

修改Xdebug配置

默認配置可參考官方配置項,編輯php.ini文件

vi /usr/local/php/etc/php.ini

在末尾加上你需要的配置,不加則使用默認,如需要修改遠程端口,則在文檔的末尾添加一行:

xdebug.idekey = "vagrant"
xdebug.default_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9001
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_handler="dbgp"

重啓php,如果你用的也是lnmp,那就執行

lnmp restart
配置防火牆,開啓9001端口

編輯防火牆iptables配置

vi /etc/sysconfig/iptables

添加

-A INPUT -p tcp -m tcp --dport 9001 -j ACCEPT

如果IDC服務商存在額外的防火牆,如阿里雲需要在IDC服務商的防火牆控制面板開啓9001端口的TCP訪問,授權訪問的IP填寫你當前網絡環境下的公網IP

配置phpstorm

添加ssh配置
在這裏插入圖片描述
添加部署
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
設置目錄映射
在這裏插入圖片描述
配置遠程php CLI解釋器,php language level選擇php版本7.3,然後如下圖點擊…按鈕
在這裏插入圖片描述
根據下圖點擊
在這裏插入圖片描述
選擇ssh配置,php7.3解釋器所在路徑,正常情況下如果沒有做多php版本的服務器,只要根據下圖選擇即可然後點擊ok:
在這裏插入圖片描述
選擇debugger extension,也就是xdebug.so路徑
類似這樣的地址:/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so
在這裏插入圖片描述點擊ok後可以看到下圖,記錄點擊ok
在這裏插入圖片描述
在這裏插入圖片描述
其中綠框部分顯示的是目錄映射信息,無需修改,此處顯示可能每個人有所不同,phpstorm會根據deployment中的設置自動生成,切記一般是不需要修改的,其他信息也都不需要修改點擊ok保存即可!
設置xdebug遠程訪問端口
在這裏插入圖片描述
配置DBGp Proxy
Host是服務器IP
在這裏插入圖片描述
添加網站服務器
在這裏插入圖片描述

Name是Server名稱,可以隨便填寫;
Host爲你調試項目是訪問的IP或者域名.
假設你的訪問路徑爲“http://192.168.1.102/project/…”,那這裏配置成192.168.1.102。
假設你的訪問路徑爲“http://www.abc.com/index.php”,那這裏配置成www.abc.com;
Port爲你Web服務器的端口,一般爲80。
除此之外還需要配置項目路徑的映射(path mapping),將項目的根目錄以及public目錄映射到Vagrant服務器中的絕對路徑。

設置Run/Debug Configurations

在這裏插入圖片描述
在這裏插入圖片描述
上圖所示的server選擇之前添加的kol_server,選擇你調試用的瀏覽器,默認chrome,其他信息無需修改,點擊ok保存即可

下載Xdebug helper瀏覽器擴展

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

debug調試

開啓debug監聽
在這裏插入圖片描述
設置斷點

假設kol_server項目是通過thinkphp開發的,最簡單的測試方式在入口文件index.php中設置斷點如下圖:
在這裏插入圖片描述

使用瀏覽器調試

假設之前設置的調試瀏覽器是chrome,那麼通過chrome訪問kol_server項目域名admin.kol.test.com,默認情況下插件開啓的是debug模式,如需切換可以點擊瀏覽器如下圖所示圖標,進行切換。在這裏插入圖片描述
正常模式下一旦訪問phpstorm即可響應來自xdebug的入站響應

使用eolinker或者postman調試

需要在header請求頭部添加Cookie
XDEBUG_SESSION=vagrant
如下圖:
在這裏插入圖片描述

請注意,關於debugger配置驗證顯示無法通過,請忽略,無法通過原因可以參考如下解釋:
因爲目前大多數項目部署入口都是在類似public的目錄下,如Thinkphp項目和Laravel項目,當配置映射時需要映射到整個項目目錄,而debugger配置驗證走的是整個項目的根目錄,正常情況下該目錄是沒有直接URL訪問權限的,所以是不可能通過的。當然如果是一些個別老項目,入口就在根目錄下,那完全可以通過debugger配置驗證。

整理記錄不易,如果對您有用,請不要吝嗇點贊!!
如需瞭解Vagrant下CentOS的box安裝Xdebug並開啓phpstorm監聽瀏覽器或postman或eolinker遠程調試全過程,請點我

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章