【问题标题】:Debugging Codeigniter with XDebug using PHPStorm使用 PHPStorm 使用 XDebug 调试 Codeigniter
【发布时间】:2015-07-30 11:36:07
【问题描述】:

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

但最近我开始使用 CodeIgniter,并通过this tutorial 工作。现在我想知道是否可以调试特定的 MVC 文件,例如 controller.php。因为在设置断点并开始使用 PHPStorm 调试控制器文件后,它当然会声明“不允许直接脚本访问”,因为我直接访问了脚本。

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

所以我想知道是否有特定的文档可供阅读以调试 CodeIgniter,还是我只是处理错了?

【问题讨论】:

  • 1) 以正常方式打开您的 URL 2) 在 PhpStorm 中启用“电话句柄”图标(因此它将开始侦听传入的调试连接)并在浏览器中设置 xdebug cookie(使用浏览器扩展或特定小书签); 3)在浏览器中重新加载页面。 confluence.jetbrains.com/display/PhpStorm/…
  • "它只是显示一个 404 页面" 这是因为您使用的是 PhpStorm 自己的 simple 内置的 Web 服务器,而不是您的 Apache。 PhpStorm 的服务器不处理 mod_rewrite 规则(不错的 URL),因此不能用于此类站点。
  • 所以整体解决方案:在浏览器外部/从浏览器发起调试请求(通过添加 xdebug cookie 或 GET/POST 参数)使用适合您的任何 URL,而不是从 PhpStorm 内部发起。
  • 感谢您的快速回复和澄清!你的回答很完美。我应该添加您的答案作为解决方案吗?
  • 当然——只需描述需要哪些步骤——它对处于相同情况的其他用户很有用。

标签: php codeigniter phpstorm xdebug


【解决方案1】:

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

使用 PhpStorm 浏览网站时显示 404 页面的第一个原因是我使用的是 PhpStorm 的内置 Web 服务器,而不是我的 Apache。并且说服务器不处理 mod_rewrite 规则(它简化了 URL),所以对于使用 CodeIgniter 的网站,它不会工作。而且由于脚本不能直接访问,因此只需在 PhpStorm 中单击运行是不可能的。所以我们必须从外部/网络浏览器发起调试请求。

现在有两件事要做:

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

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

【讨论】:

    猜你喜欢
    • 2015-07-04
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 2011-11-06
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多