最新公告
  • 欢迎您光临笨羊博客,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 先晒一个最终效果吧。

    完成效果图

    1、理论知识

    我不太想按照网上的教程,一步步告诉你怎么搞,因为每个人的情况真的千差万别,真的没法一步步就到位,很多人照着教程依然做不下去,就是因为“知其然不知所以然

    不过本章纯属个人理解,未必正确,不喜欢看的可以直接跳第二章。

    首先是要用到的工具:——先不着急下载,下面会说下载
    1、phpstorm
    2、php运行环境,我这里直接用的宝塔装的nginx+php,也可以用其他的xampp,lamp等等
    3、php代码调试工具:今天用的是xdebug,类似产品还有zend debugger

    大概解释一下这三个玩意儿的角色:

    • 前两个比较好理解,phpstorm是代码编辑器,跟java的eclipse、python的pycharm类似,他们就是一个很牛逼的记事本而已,通常并不能直接运行代码,而是需要搭配运行环境才可以运行代码。
      例如:java的eclipse需要jdk,python的pycharm需要python sdk,phpstorm需要的就是“nginx/apache+php”
    • 比较恶心的就是代码调试工具了,在其他语言中,通常都不需要这个玩意儿就能调试,但是php需要,而且不论是xdebug还是zend debugger,都是需要下载2个东西,一个跟浏览器搭配,一个跟php搭配

    我个人的理解是这样的:
    1、不用调试工具的时候,如下图,我们用phpstorm编写好代码(期间各种echo调试),发布到服务器,然后浏览器请求服务器,服务器直接就返回了,很easy,但是运行过程中实际上已经跟phpstorm无关了,所以自然也就无法断点。

    2、有了调试工具之后的情况如下图所示,橙色是我们新增或者修改了的东西。
    1)安装了一个xdebug的浏览器插件
    2)运行环境中安装了一个xdebug的插件
    3)phpstorm中配置了一些东西,来跟xdebug进行搭配
    整个流程串起来就是:
    1)浏览器发出请求,被xdebug浏览器插件拦截,修改报文请求后继续请求服务器
    2)服务器收到请求,发现xdebug插件,于是转给xdebug处理
    3)xdebug收到请求,跟phpstorm沟通一下,将代码运行停在断点处,phpstorm收到之后在ide中做断点处理
    4)程序员在ide中调试断点,phpstorm实时将调试情况同步给xdebug,xdebug根据程序员的要求逐步执行代码——所以xdebug和phpstorm之间,是会有很多次的交互,来保持调试的同步

    phpstorm调试php代码环境配置

    整个流程说下来,可以看到,后端的xdebug和phpstorm的互通是实现断点调试的关键,前端的xdebug实际上并没有什么卵用,我们来看xdebug浏览器插件的界面,如下图,他实际上是一个配置界面,可以指定是否调试,以哪种方式调试。从设计的角度来说,这个完全可以通过phpstorm去配置。

    2、实战

    理论说完了,我们要做工作也就出来了

    1)工具安装:

    1)浏览器肯定得有了,我这里使用chrome
    这里下载:https://www.google.com/chrome/
    2)xdebug的浏览器插件,这里使用配合chrome的插件——xdebug也提供了其他浏览器的对应插件
    这里下载:https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc
    访问不了Google这里页面底部下载:Xdebug helper:php调试插件
    3)xdebug后台插件(下载解压,配置到php环境中,附上配置教程:xdebug后台插件配置教程)
    这里下载:https://xdebug.org/download.php
    4)phpstorm安装
    这里下载:https://www.jetbrains.com/phpstorm/
    5)nginx+php,我这里是用的宝塔(因为懒)
    这里下载:https://www.bt.cn/

    2)配置(真正恶心的是配置)

    1)浏览器端的配置:浏览器和xdebug浏览器插件安装后,选择绿色的小虫子即可开启调试,配置教程:360浏览器如何安装crx文件

    2)php运行环境的配置:也就是nginx+php+xdebug
    宝塔装好之后,一键安装nginx和php,然后找到php的设置,如下图所示,一键安装并配置xdebug

    实际的操作是,他会自动下载安装xdebug,跟自行下载解压的没区别,然后在php.ini里面配置,最后一行的dll,就是我们前面解压的xdebug的dll路径:

    [XDebug]
    xdebug.profiler_append = 0
    xdebug.profiler_enable = 1
    xdebug.profiler_enable_trigger = 0
    xdebug.profiler_output_dir ="D:\BtSoft\WebSoft\temp\xdebug"
    xdebug.trace_output_dir ="D:\BtSoft\WebSoft\temp\xdebug"
    xdebug.profiler_output_name = "cache.out.%t-%s"
    xdebug.remote_enable = 1
    xdebug.remote_handler = "dbgp"
    xdebug.remote_host = "127.0.0.1"
    zend_extension=php_xdebug.dll
    

    然后在宝塔中新建一个网站,目录指向你的项目根目录。如果是其他容器,修改nginx或apache配置即可。

    phpstorm调试php代码环境配置

    配置完成后check一下你的php环境是可以跑的。
    3)然后是配置phpstorm与php环境、xdebug互通,第一章我们说了,这块儿是实现代码调试的关键

    • 首先要让phpstorm关联php的sdk
      如下图所示,打开phpstorm的设置,语言与框架,然后php,右边选择php的版本,我这里用的是7.1

      phpstorm调试php代码环境配置

    在弹出的对话框中,按照php的安装路径选择php.exe,选择后,会自动显示php的版本和对应的debugger,可以看到我这里的php版本是7.1.15,对应的debugger是xdebug2.5.5,这里之所以我选择了php,就可以自动识别出xdebug,就是因为在上一步的配置中,我们已经在php.ini中配置了xdebug的dll路径,如果这里你的无法识别,就去上一步找找原因,知道可以识别为止。

    phpstorm调试php代码环境配置
    • 配置调试
      配置完php之后,继续打开debug这个选项,右侧可以看到四个步骤,我翻译一下:
      1.安装xdebug或者zend debugger,验证debugger配置
      2.安装浏览器工具
      3.打开php调试连接(还记得理论部分我们说过,xdebug需要多次跟phpstorm交互吗,就是通过这个listener)
      4.开始debug

      phpstorm调试php代码环境配置

    第一步的安装我们已经完成了,现在点validate来验证一下,如下图所示,第一行选择local的server,第二行填写php项目路径,第三行填写访问地址(如果有端口记得加上),然后点击validate,正常会入下面红框所示,一堆绿色的对勾,把server信息、php.ini信息、xdebug信息等显示出来。

    phpstorm调试php代码环境配置

    如果你的显示是各种异常,就针对性的去解决,比如下面这个404,就说明url是无法访问的,可以复制到浏览器里面看一下,是不是地址填的不对,缺了端口,或者服务器没启动;
    还有可能是提示php可以了,但是xdebug不行,那还是回到刚才说的xdebug的配置。

    phpstorm调试php代码环境配置

    第二步是说安装浏览器插件,我们上面已经装好了
    第三步打开connection,点击一下打开就行了。
    第四步开始debug,那么我们就开始吧。
    我们新建一个test.php文件,随便写点内容

     

    <?php
    
    echo "test";
    echo phpinfo();
    

    但是发现右上角的运行是灰色的,这是因为我们要新建一个server

    phpstorm调试php代码环境配置

    还是在配置中,如下图所示新建一个server

    phpstorm调试php代码环境配置

    然后新建一个运行配置,选择php web page,右侧的配置中,server选择刚才新建的server,启用页面选择/test.php,浏览器选择chrome

    image.png
    phpstorm调试php代码环境配置

    然后就可以启动了,加一个断点,点击debug按钮进行调试

    phpstorm调试php代码环境配置

    这时就会自动打开页面,并定位到断点处。

    可能我们调试的时候会出错,显示【出错: Port 9000 is busy】,这是因为9000端口被占用导致的,通过PhpStorm DEBUG调试之9000端口报错修改端口即可访问

     

    张昊翔博客原创文章,作者:,如若转载,请注明出处:
    1、本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2、分享目的仅供大家学习和交流,请不要用于商业用途!
    3、本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    4、如有链接无法下载、失效或广告,请联系管理员处理!
    5、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

    笨羊博客(张昊翔博客) » phpstorm调试php代码环境配置

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    站壳网
    一个高级程序员模板开发平台

    发表评论