使用 PHPStorm 使用 XDebug 调试 Codeigniter

Debugging Codeigniter with XDebug using PHPStorm

设置 XDebug 后,我成功调试了 php 个可直接访问的 PHPStorm 文件。

但最近我开始使用 CodeIgniter 并完成了 this tutorial。现在我想知道是否可以调试特定的 MVC 文件,例如 controller.php。因为在设置断点并开始使用 PHPStorm 调试控制器文件后,它当然会显示 'No direct script access allowed' 因为我直接访问了脚本。

并且在手动访问文件时,例如http://localhost:63342/01_codeigniter_tutorial/public_html/index.php/controller 它只显示一个 404 页面,而不是不使用 PHPStorm 打开它时显示的通常输出。

所以我想知道是否有专门的文档可以通读以调试 CodeIgniter,还是我只是处理错了?

感谢 LazyOne,他在评论中启发了我,让我能够找到我的错误和解决方案。

使用 PhpStorm 浏览网站时显示 404 页面的第一个原因是我使用的是 PhpStorm 的内置 Web 服务器,而不是我的 Apache。并且所述服务器不处理 mod_rewrite 规则(这简化了 URL),因此对于使用 CodeIgniter 的网站来说,它不起作用。由于脚本无法直接访问,因此无法通过在 PhpStorm 中单击 运行 来实现。所以我们必须从outside/web浏览器发起调试请求。

现在有两件事要做:

  • PhpStorm(或您喜欢的 IDE)必须知道调试过程即将发生
    • 使用 PhpStorm,您必须切换“开始侦听 PHP 调试连接”按钮。
    • 更多内容见their documentation
  • 像往常一样浏览您的网站时(在我的情况下 localhost/01_codeigniter_tutorial/public_html/index.php/controller)您必须设置 XDebug cookie 因为 xdebug 不会在您打开脚本时自动启动调试会话。
    • 最简单的方法是安装浏览器插件,因为您只需单击一个按钮(我使用了最简单的 XDebug for FF)
    • 阅读this了解更多信息

一切设置完成后,您只需刷新页面,IDE 应该会收到您的调试请求。