phpstorm 是一个php开发利器,本博客简单的描述如何使用phpstrom2016.2实现phpweb应用debug. 简单单个php脚本不做解释.
英文好的同学直接阅读官方文档会更加详细

前提

  • 下载xdebug扩展包, (windows下载对应的xdebug.dll), unix-like下载xdebug.so或自行编译(phpize)不多介绍

  • 配置xdebug注入到php引擎中, 实现断点拦截调试

  • 配置守护进程模式

  • 配置运行时(just in time) 模式

下载debug

  • xdebug下载对应的版本到ext目录下

  • 编辑php.ini文件, 找到对应的[xdebug]端, 加入xdebug扩展

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [xdebug]
    zend_extension=php_xdebug.dll
    xdebug.remote_enable=1
    xdebug.remote_connect_back=1
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9999
    debug.show_local_vars=0
    xdebug.var_display_max_data=10000
    xdebug.var_display_max_depth=20
    xdebug.show_exception_trace=0

    注意xdebug_remote_port=9999 默认是9000, 由于我本地php-cgi跑的端口是9000, 所以修改了, 后面对应的phpstrom也要修改默认9000 => 9999端口.

  • 重启服务, apache(mod)形式重启apache, nginx+fpm, 重启fpm

配置ide注入

  • 打开File|Settings对话框, 选择Languages&Frameworks., 在php页面选择interpreter, 选择本地安装的php脚本.

    xdebug interpreter

  • 如果有修改默认xdebug_remote_port, 修改默认phpstorm默认debug端口

    phpstrom default debug port

  • 添加默认服务地址

    default php host

  • 新建调试页面(一个服务地址下, 可以配置多个页面调试)

    create debug page

  • 在对应的php文件打上断点后, 点击debug按钮后, 会打开默认浏览器访问上一部配置的地址, 然后再回到phpstrom, php已经停止在断点处了. 之后慢慢调试咯. 效果如图

    OK

    这样就实现了phpweb应用的调试了, 不用var_dump($var);exit;调试了

PS: 有问题欢迎拍砖, 本人亲测没有问题.