【问题标题】:How do I profile a Codeigniter Web App with XDebug?如何使用 XDebug 分析 Codeigniter Web 应用程序?
【发布时间】:2012-02-29 05:55:46
【问题描述】:

我在 Linux CentOS 上运行 XDebug。我想在由 Apache 提供服务的使用 CodeIgniter 构建的 Web 应用程序上分析页面。

XDebug 在 php.ini 中启用,设置如下:

zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = /tmp/xdebug

当我从命令行触发 php 脚本时一切正常,并且 XDebug 配置文件日志按预期写入 /tmp/xdebug。当我通过浏览器从 Web 应用程序加载 url 时,XDebug 不会创建任何配置文件日志文件。

有没有人让 XDebug 与 Codeigniter 一起工作?据我所知,我不应该通过 url 中的 GET 触发 XDebug 分析,因为 profiler_enable 已为所有 php 脚本打开,尽管我已经尝试过,但它似乎也不起作用。

【问题讨论】:

    标签: linux apache codeigniter xdebug


    【解决方案1】:

    Apache 需要对 /tmp/xdebug 文件夹具有写入权限。

    sudo chown -R apache:apache /tmp/xdebug
    

    XDebug 现在可以分析从浏览器加载的 Codeigniter 页面。

    谢谢@J。布鲁尼。

    【讨论】:

      【解决方案2】:

      在我看来,这个问题与 CodeIgniter 无关...看来您可能有多个 php.ini 文件...

      在我的 Ubuntu 安装中,我在 /etc/php5 目录中有几个子目录:cgiclifpm 等。每个子目录里面都有一个 php.ini 文件,这是特定的到单一的“模式”。

      换句话说:PHP 可能有几个不同的php.ini 文件...一个用于CLI(命令行),另一个用于CGI,依此类推...

      也许您在上面粘贴的 xdebug 配置行不在您从浏览器访问 PHP 脚本时使用的 php.ini 文件中。也许您将这些行添加到 /etc/php5/cli/php.ini 而不是 /etc/php5/cgi/php.ini(或其他...在我的设置中,它是 /etc/php5/fpm/php.ini,因为我使用 php-fpm)

      【讨论】:

      • 刚刚在 xdebug 文档中找到。我认为你应该尝试这个简单的测试:“编写一个调用 'phpinfo()' 的 PHP 页面 将其加载到浏览器中并查找 Xdebug 模块上的信息。如果你在 Zend 徽标旁边看到它,你已经成功了!”
      • 当我这样做时,一切看起来都很好。 Xdebug 正在加载,它的所有设置都使用 phpinfo() 输出。
      • 那么,问题不在于php.ini... 你在CodeIgniter 控制器中尝试过phpinfo() 吗? (只是为了检查 xdebug 是否仍然存在......)
      • Windows 中的一个人解决了他更改日志文件名的问题:stackoverflow.com/questions/8076743/… - 此外,Web 服务器 Apache 必须具有写入 profiler_output_dir 的权限...
      • apache 需要写权限。现在它正在分析通过浏览器加载的 codeigniter 页面。该死。这将是我的问题多少次。哈哈。谢谢你的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-19
      • 2018-12-25
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      相关资源
      最近更新 更多