• PHPStorm中调试利用的是xdebug的remote特性,使用的是 DBGp协议,PHPStorm是一个实现了DBGp协议的客户端
  • php.ini中启用xdebug.remote_enable, 配置xdebug.remote_hostxdebug.remote_port, port默认是9000. 通过phpinfo()函数的输出,可以在Loaded Configuration File中看到实际加载的php.ini文件是哪一个。
  • sudo apt install php-xdebug之后,会自动在/etc/php/7.0/apache2/conf.d中创建一个xdebug的配置文件,可以在这个文件中修改关于xdebug的配置,而不用去改通用的php.ini.
  • client启动之后会监听 port,等待xdebug发送的请求。
  • 要使php解释器在运行的时候activate xdebug,有三种方式:
    1. 从命令行运行php脚本时,设置环境变量export XDEBUG_CONFIG="idekey=session_name", 同样也可以在XDEBUG_CONFIG环境变量中设置remote_host,remote_port等属性。
    2. 从一个浏览器中启动debugger,需要传递一个XDEBUG_SESSION_START=session_name参数,这个参数可以是GETPOST或者Cookie。可以使用一些浏览器的插件自动传递这个参数。
  • 只要xdebug.remtoe_enable开启了,PHPStorm打开了 Listening for PHP Debug,也就是服务器和客户端都准备好了,然后浏览器发送请求的时候包含一个XDEBUG_SESSION_START参数(?文档中写的是XDEBUG_SESSION_START,而实际上bookmark和插件中设置的cookie都是XDEBUG_SESSION),就可以愉快地调试了。