零配置 - 使用 Xdebug,Phpstorm 调试本地 PHP Web 应用

蒲公英 提交于 周一, 01/08/2018 - 09:21
Xdebug

本指南描述怎样使用 Xdebug,Phpstorm 调试本地 PHP Web 应用。

前提

假设你已经安装了 PHP 运行环境,例如 Xampp 。

安装 Xdebug

  1. 官方站点下载与你 PHP 兼容(关注 “PHP 版本号”和“线程安全/非线程安全”选项)的 Xdebug 扩展。
  2. 拷贝扩展文件到 Web 服务器相关位置
  3. 在 php.ini 文件下方追加以下内容
    [Xdebug]
    zend_extension=<full_path_to_xdebug_extension>
    xdebug.remote_enable=1
    xdebug.remote_host=<the host where PhpStorm is running (e.g. localhost)>
    xdebug.remote_port=<the port to which Xdebug tries to connect on the host where PhpStorm is running (default 9000)>
  4. 重启 Web 服务
  5. 确认安装结果
    phpinfo();
    xdebug phpinfo

说明:
Xampp 本身已经包含了 Xdebug 扩展,位于 php\ext 内。

准备 Phpstorm

  1. 基于要调试的代码,在 Phpstorm 内创建工程
  2. 切换“Start Listening for PHP Debug Connections”按钮。

    Start Listening for PHP Debug Connections
    Start Listening for PHP Debug Connections

     

在源码内设置断点

设置断点

激活服务器上的 Debugger

为了激活服务器端的 Debugger,需要设置一个特定的 GET/POST 或者 COOKIE 参数。可以手动做这件事,但更方便的是使用浏览器工具栏这样的工具。

我们在 FireFox 浏览器安装 Xdebug Helper,之后你会看到以下图标。

Xdebug Helper

在浏览器启动调试会话

启动调试会话

设置初始路径映射

切换到 Phpstorm,你会看到“Incoming Connection From Xdebug”对话框。这里设置服务器文件路径和工程文件路径的对应关系,点击 Accept 即可。

Incoming Connection From Xdebug

说明:
有些情况你创建工程的代码可能不是正在运行的代码,例如只是正运行代码的拷贝。这种情况不会出现上述对话框,Phpstorm 监测不到。此时你需要去 Settings -> Languages & Frameworks -> PHP -> Servers 追加 Server 并进行文件路径映射。

调试!

Debug

Blog tags