最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHPStorm+Xdebug進(jìn)行emote Debug時(shí)無(wú)法進(jìn)入斷點(diǎn)問(wèn)題排查

 更新時(shí)間:2021年04月21日 10:51:54   作者:wowo_zZ  
這篇文章主要介紹了PHPStorm+Xdebug進(jìn)行emote Debug時(shí)無(wú)法進(jìn)入斷點(diǎn)問(wèn)題排查,遇到類似問(wèn)題的同學(xué),可以詳細(xì)參考下

最近一直在研究Xdebug的用法,主要是因?yàn)閄debug對(duì)PHP的開發(fā)效率提升確實(shí)很大,而卻能幫我們解決很多問(wèn)題。所以這里就總結(jié)下我在配置PHPStorm+Xdebug環(huán)境中遇到的坑,給遇到進(jìn)不去斷點(diǎn)的朋友一些排查的建議。

運(yùn)行環(huán)境

  • PHP Version 7.1.22
  • Xdebug v2.6.0
  • PHP2016.2;
  • 操作系統(tǒng):MacOS 10.12.3

如果遇到無(wú)法進(jìn)入斷點(diǎn)的問(wèn)題,可以按照以下的步驟進(jìn)行排查

確認(rèn)運(yùn)行Web程序的PHP安裝了Xdebug擴(kuò)展

PHP永久了,難免會(huì)在電腦上多裝幾個(gè)版本。這個(gè)時(shí)候就必須注意,你是否將Xdebug安裝到了你需要調(diào)試的PHP版本中,而且要注意,命令行運(yùn)行的php,不一定是Web程序運(yùn)行的PHP。例如你安裝了PHP的5.6和7.1兩個(gè)版本,命令行跑的是5.6,但fpm跑的是7.1。這時(shí)如果你給5.6安裝Xdebug,你運(yùn)行php -m | grep xdebug確實(shí)可以看到Xdebug擴(kuò)展,但是如果想調(diào)試7.1運(yùn)行的Web程序,當(dāng)然是不可能的。所以這里最關(guān)鍵一點(diǎn),就是:

在Web程序中輸出phpinfo();exit; ,來(lái)確認(rèn)運(yùn)行fpm的php中是否安裝了Xdubug擴(kuò)展。

確認(rèn)Xdebug擴(kuò)展的版本與PHP版本匹配

如果你安裝了Xdebug,但是版本與PHP不匹配,也是沒(méi)辦法正常工作的。如何正確的選擇PHP對(duì)應(yīng)的Xdebug版本。

確認(rèn)Xdebug配置了有效的參數(shù)

在PHPStorm中調(diào)試不同的PHP程序,需要配置不同的Xdebug參數(shù)。在Remote Debug模式下:

必須要設(shè)置的參數(shù)有:

  • remote_enable=1 開啟遠(yuǎn)程調(diào)試,不開啟這個(gè)參數(shù)的話,自然無(wú)法Remote Debug;
  • remote_host=127.0.0.1(本機(jī)情況) or remote_connect_back=1,由于這兩個(gè)配置項(xiàng)有緊密聯(lián)系,所以放在一起講。 首先,如果你指針對(duì)單個(gè)調(diào)試用戶,比如就你自己調(diào)試,你可以將remote_host設(shè)成你的Web程序運(yùn)行的ip(比如本機(jī),就設(shè)置為127.0.0.1),remote_connect_back的值不設(shè)置或者設(shè)置為0(你不設(shè)置默認(rèn)也是0)。這樣X(jué)debug每次調(diào)試的時(shí)候會(huì)固定連接remote_host指定的ip;但是如果你支持的是多人調(diào)試,明顯設(shè)置一個(gè)remote_host是沒(méi)辦法的。這個(gè)時(shí)候就可以用remote_connect_back=1來(lái)設(shè)置。當(dāng)remote_connect_back設(shè)置為1的時(shí)候,xdebug會(huì)根據(jù)請(qǐng)求來(lái)的ip自動(dòng)回連,進(jìn)行調(diào)試,從而支持多人調(diào)試。同時(shí),這個(gè)值設(shè)為1的話會(huì)使remote_host的設(shè)置無(wú)效;一般情況下,推薦使用remote_connect_back=1的配置
  • remote_port=9001 PHP進(jìn)程與DebugClient通信的端口號(hào),必須要設(shè)置與PHPStorm中的一致,否則無(wú)法正常通信;
  • idekey=PHPSTORM 可以理解為通信用到的口令,必須要設(shè)置與PHPStorm中的一致;

推薦設(shè)置的參數(shù):

remote_autostart=1
默認(rèn)狀態(tài)下,觸發(fā)調(diào)試需要在url中增加get參數(shù):XDEBUG_SESSION_START= {xdebug.idekey},如果想自動(dòng)啟動(dòng)調(diào)試,即不加這個(gè)參數(shù)也能自動(dòng)觸發(fā)調(diào)試,可以將這個(gè)值設(shè)為1,所以推薦將這個(gè)值設(shè)為1;

確認(rèn)PHPStorm監(jiān)聽的端口是Xdebug中配置的端口

一定要在此確認(rèn)Xdebug中配置的remote_port(最好使用打印出phpinfo來(lái)查看)和PHPStorm中配置的一致,否則無(wú)法進(jìn)入調(diào)試。

確認(rèn)PHPStorm中的debugclient順利啟動(dòng)

在PHPStorm的工具欄中啟動(dòng)了Remote Debug之后,需要檢查是否順利啟動(dòng)了DebugClient進(jìn)程。這個(gè)進(jìn)程就是PHPStorm啟動(dòng)來(lái)進(jìn)行調(diào)試的,所以只需要查看PHPStorm是否監(jiān)聽了我們?cè)O(shè)置的端口(remote_port)就可以了。例如我指定的端口是9001,那么在Mac上可以通過(guò)lsof -i tcp:9001命令查看:

確認(rèn)PHPStorm中的IDEKey和Xdebug中配置的一致

一定要確認(rèn)PHPStorm中配置的IDEKey和Xdebug中配置的idekey是一樣的,否則無(wú)法進(jìn)入調(diào)試。

代碼部署在遠(yuǎn)程,需要開啟目錄映射

如果你是調(diào)試遠(yuǎn)程的Web程序(即代碼不是部署在本機(jī)),必須要設(shè)置目錄映射,否則找不到代碼所在,是無(wú)法調(diào)試的。設(shè)置的方法如下圖:

確認(rèn)PHPStorm和Xdebug+PHP的版本匹配

使用Xdebug調(diào)試,是PHP進(jìn)程通過(guò)Xdebug擴(kuò)展和PHPStorm的debugclient通信的過(guò)程,所以必須這三方在版本上兼容才可以。有的時(shí)候碰到一些奇葩的問(wèn)題,比如我就碰到過(guò)可以進(jìn)入斷點(diǎn),但是無(wú)法單步調(diào)試(點(diǎn)擊下一步調(diào)試進(jìn)程就卡死)的情況。這種情況很有可能是PHPStorm的版本和Xdebug+PHP的版本不兼容。比如我碰到的這個(gè)問(wèn)題就是因?yàn)槲矣昧俗钚掳姹镜腦debug2.7,但是使用的PHPStorm卻是2017.2的版本,而我將xdebug降到2.6之后就可以正常調(diào)試了。所以,最好保證PHPStorm、Xdebug和PHP的版本協(xié)調(diào)一致。

總結(jié)

如果按照上面說(shuō)的還是不行,那么就需要查看remote_log,來(lái)看下問(wèn)題到底出在哪了。
這個(gè)時(shí)候需要在xdebug的配置中增加:xdebug.remote_log=/tmp/xdebug.log來(lái)打開remote_log。
配置完成之后,重新啟動(dòng)fpm,查看phpinfo,確認(rèn)remote_log生效之后(默認(rèn)是不啟動(dòng)remote_log的)之后,調(diào)試的時(shí)候就可以tail -f /tmp/xdebug.log來(lái)查看日志了。舉個(gè)例子,我故意將remote_port設(shè)置為一個(gè)不存在的9999端口,然后查看remote_log的報(bào)錯(cuò)信息:

從日志中看出,Xdebug嘗試去連接127.0.0.1的9999端口,但是失敗了。這樣,我們就能看出到底問(wèn)題出在哪里,當(dāng)我們是在找不到配置的問(wèn)題時(shí),可以借助日志,再結(jié)合google、百度,看看能否找到問(wèn)題的所在。

以上就是PHPStorm+Xdebug進(jìn)行emote Debug時(shí)無(wú)法進(jìn)入斷點(diǎn)問(wèn)題排查的詳細(xì)內(nèi)容,更多關(guān)于PHP斷點(diǎn)排查的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • PHP實(shí)現(xiàn)簡(jiǎn)單數(shù)字分頁(yè)效果

    PHP實(shí)現(xiàn)簡(jiǎn)單數(shù)字分頁(yè)效果

    我們平時(shí)在開發(fā)中,經(jīng)常需要用到分頁(yè),在項(xiàng)目中要用到分頁(yè)。分頁(yè)功能是經(jīng)常使用的一個(gè)功能,下面我們就來(lái)簡(jiǎn)單分享個(gè)數(shù)字的分頁(yè)效果
    2015-07-07
  • 一文帶你掌握PHP中常見的文件操作

    一文帶你掌握PHP中常見的文件操作

    這篇文章主要為大家詳細(xì)介紹了PHP中常見的文件操作的相關(guān)知識(shí),文字的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • php多進(jìn)程并發(fā)編程防止出現(xiàn)僵尸進(jìn)程的方法分析

    php多進(jìn)程并發(fā)編程防止出現(xiàn)僵尸進(jìn)程的方法分析

    這篇文章主要介紹了php多進(jìn)程并發(fā)編程防止出現(xiàn)僵尸進(jìn)程的方法,結(jié)合具體實(shí)例形式總結(jié)分析了php多進(jìn)程并發(fā)編程防止出現(xiàn)僵尸進(jìn)程相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • Ajax PHP簡(jiǎn)單入門教程代碼

    Ajax PHP簡(jiǎn)單入門教程代碼

    Ajax 由 HTML、Javascrīpt™ 技術(shù)、DHTML 和 DOM 組成,這一杰出的方法可以將笨拙的 Web 界面轉(zhuǎn)化成交互性的 Ajax 應(yīng)用程序。對(duì)于Ajax,最核心的一個(gè)對(duì)象是XMLHttpRequest,所有的Ajax操作都離不開對(duì)這個(gè)對(duì)象的操作。
    2008-04-04
  • 國(guó)外比較好的幾個(gè)的Php開源建站平臺(tái)小結(jié)

    國(guó)外比較好的幾個(gè)的Php開源建站平臺(tái)小結(jié)

    大量的PHP開源(開放源代碼/Open Source)應(yīng)用改變了這個(gè)世界,改變了互聯(lián)網(wǎng),以下我們總結(jié)從數(shù)據(jù)庫(kù)到購(gòu)物、博客等眾多類型的開源PHP軟件,供網(wǎng)站開發(fā)者們參考。
    2010-04-04
  • php實(shí)現(xiàn)的統(tǒng)計(jì)字?jǐn)?shù)函數(shù)定義與使用示例

    php實(shí)現(xiàn)的統(tǒng)計(jì)字?jǐn)?shù)函數(shù)定義與使用示例

    這篇文章主要介紹了php實(shí)現(xiàn)的統(tǒng)計(jì)字?jǐn)?shù)函數(shù)定義與使用方法,結(jié)合實(shí)例形式分析了php針對(duì)字符串的統(tǒng)計(jì)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • php實(shí)現(xiàn)redis緩存配置和使用方法詳解

    php實(shí)現(xiàn)redis緩存配置和使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何配置Redis擴(kuò)展以及如何在PHP項(xiàng)目中使用Redis進(jìn)行緩存操作,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-02-02
  • PHP與MongoDB簡(jiǎn)介|安全|M+PHP應(yīng)用實(shí)例詳解

    PHP與MongoDB簡(jiǎn)介|安全|M+PHP應(yīng)用實(shí)例詳解

    本篇文章是對(duì)PHP中的MongoDB簡(jiǎn)介|安全|M+PHP應(yīng)用實(shí)例進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php使用glob函數(shù)遍歷文件和目錄詳解

    php使用glob函數(shù)遍歷文件和目錄詳解

    這篇文章主要介紹了php使用glob函數(shù)遍歷文件和目錄詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • PHP使用函數(shù)用法詳解

    PHP使用函數(shù)用法詳解

    在本篇文章中我們給大家整理了關(guān)于PHP中最實(shí)用的函數(shù)以及用法講解,有需要的朋友們學(xué)習(xí)下。
    2018-09-09

最新評(píng)論

安吉县| 潞城市| 肥西县| 新化县| 威远县| 泌阳县| 虞城县| 舒城县| 政和县| 界首市| 龙井市| 广丰县| 洛阳市| 白山市| 论坛| 惠安县| 洛宁县| 辽宁省| 乌拉特后旗| 南华县| 建宁县| 东乡族自治县| 湖州市| 广宗县| 西林县| 合肥市| 西昌市| 四平市| 新邵县| 鹿泉市| 潞西市| 壶关县| 无棣县| 玉田县| 连云港市| 伊吾县| 凌源市| 来凤县| 社旗县| 特克斯县| 南漳县|