docker環(huán)境下的xdebug安裝與代碼調試
專注于PHP、MySQL、Linux和前端開發(fā),感興趣的感謝點個關注喲!!!文章整理在GitHub,Gitee主要包含的技術有PHP、Redis、MySQL、JavaScript、HTML&CSS、Linux、Java、Golang、Linux和工具資源等相關理論知識、面試題和實戰(zhàn)內容。
@author: 一只獨立特行的豬 @文檔地址:卡二條的技術圈
xdebug介紹
Xdebug是PHP的一個擴展,方便我們調試PHP應用程序的執(zhí)行流程信息。使用過JavaScript中的debug,應該就能很好的理解xdebug。總結,大致有如下的功能:
它包含一個用于IDE的調試器。 它升級了PHP的var_dump()函數(shù)。 它為通知,警告,錯誤和異常添加了堆棧跟蹤。 它具有記錄每個函數(shù)調用和磁盤變量賦值的功能。 它包含一個分析器。 它提供了與PHPUnit一起使用的代碼覆蓋功能。
本文針對docker的環(huán)境下,進行xdebug的安裝與簡單調試。
環(huán)境
環(huán)境都是在docker上運行的,使用到了dnmp。
PHP版本:7.4.20。xdebug版本:3.1.1。
流程
要想使用docker下的PHP容器來調試。比如要經過下面的幾個流程。大家按照下面的流程進行安裝,就可以了。使用這個方式非常簡單、快捷。
使用docker搭建一個PHP容器。
給PHP安裝xdebug擴展。
配置xdebug信息。
配置PHPstorm即可。
按照PHP容器
這一步就省略,搭建可以根據(jù)自己的需要搭建,也可以使用演示環(huán)境中使用的docker環(huán)境。、Gitee[https://gitee.com/bruce_qiq/php_dnmp/tree/master]
安裝xdebug擴展
按照xdebug擴展也是非常簡單,直接使用install-php-extensions xdebug就可以了。如果你是自己搭建的PHP容器,也可以使用常規(guī)的編譯方式安裝xdebug擴展。需要注意xdebug與PHP的版本。xdebug官方是提供了一個檢測工具,幫助我們如何選擇xdebug的版本。我們可以在終端使用php -i將輸出的內容,填充到網(wǎng)站的文本框內,檢測之后,會自動給出安裝的版本,以及安裝的流程。
如果出現(xiàn)下面的界面,則表示擴展安裝成功。
+----------------------------------------------------------------------+
|??????????????????????????????????????????????????????????????????????|
|???INSTALLATION?INSTRUCTIONS??????????????????????????????????????????|
|???=========================??????????????????????????????????????????|
|??????????????????????????????????????????????????????????????????????|
|???See?https://xdebug.org/install.php#configure-php?for?instructions??|
|???on?how?to?enable?Xdebug?for?PHP.???????????????????????????????????|
|??????????????????????????????????????????????????????????????????????|
|???Documentation?is?available?online?as?well:?????????????????????????|
|???-?A?list?of?all?settings:??https://xdebug.org/docs-settings.php????|
|???-?A?list?of?all?functions:?https://xdebug.org/docs-functions.php???|
|???-?Profiling?instructions:??https://xdebug.org/docs-profiling2.php??|
|???-?Remote?debugging:????????https://xdebug.org/docs-debugger.php????|
|??????????????????????????????????????????????????????????????????????|
|??????????????????????????????????????????????????????????????????????|
|???NOTE:?Please?disregard?the?message?????????????????????????????????|
|???????You?should?add?"extension=xdebug.so"?to?php.ini????????????????|
|???that?is?emitted?by?the?PECL?installer.?This?does?not?work?for??????|
|???Xdebug.????????????????????????????????????????????????????????????|
|??????????????????????????????????????????????????????????????????????|
+----------------------------------------------------------------------+
配置
配置xdebug
[xdebug]
xdebug.client_port=9000
xdebug.client_host=192.168.2.101
xdebug.mode=develop,debug,profile,trace
xdebug.profiler_append?=?0
xdebug.profiler_output_name?=?cachegrind.out.%p
xdebug.start_with_request?=?default|yes|no|trigger
xdebug.trigger_value?=?StartProfileForMe
PHPstorm配置
PHPstorm我使用的是2021版本,因此在界面可能有一些不太一樣。大家根據(jù)自己的情況,找到對應的配置即可。大致的界面如下:



Error running 'local': Port 9501 is busy。如果在實際調試中出現(xiàn)該錯誤信息,則直接修改一個端口號(沒有被占用的端口號),重啟PHP服務就可以了。
