4

我有一个来自其他人的非常慢的脚本,我需要对其进行分析以加快速度,我已经遵循了许多教程,但是它一直指向相同的步骤。

通过将 phpinfo 复制到 Xdebug 的网站 find_binary.php 搜索功能中,我已经从 xDebug 的网站下载了适当的二进制文件。

我有一个看似正确的设置。

Notepad++ (NPP) 配置为使用指定的 IDE 密钥通过 127.0.0.1:9000 连接到 Xdebug。

以下是特定于 xdebug 的 php.ini 部分。

[xdebug]
zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

我正在使用 PHP 5.4.4。

我的 phpinfo 输出没有提到 Xdebug。

4

2 回答 2

11

对于php5.3 及更高版本的 Windows,您需要在 php.ini 文件中使用zend_extension而不是。zend_extension_ts

例子

zend_extension="C:\xampp\php\ext\php_xdebug.dll"

如果您使用 xdebug 向导http://xdebug.org/wizard.php并收到此消息 Xdebug 仅作为 PHP 扩展加载,而不是作为 Zend 扩展加载 这是因为使用了 zend_extension_ts(我认为)。

还有一点需要注意。

如果您不在正在测试的代码中设置断点,您将不会在记事本中看到任何内容。它运行得如此之快,以至于它看起来好像不起作用(如果你仔细观察,notepad plus 会闪烁)。我花了很长时间才意识到这一点。

第三

我建议从http://xdebug.org/download.php为您的系统下载最新的 xdebug.dll

xdebug 自 [2012-05-08] 以来仅与 php 5.4 兼容- Xdebug 2.2.0 最新版本是 Xdebug 2.2.1

我还建议使用来自http://sourceforge.net/projects/npp-plugins/files/DBGP%20Plugin/的最新版本的 DBDG 插件(notepad plus 需要此文件才能与 Xdebug 一起使用)

另一件事

编辑:刚刚注意到您使用 XAMPSERVER,但我会​​留下它,以防它对其他人有用。如果您使用的是 wampserver 2.2,则预先安装了 xdebug。如果您稍后再次手动安装 xdebug 并设法安装了 2 个版本或类似的东西,这可能会导致问题。

我最后一个用于 xdebug 的 php.ini 文件

请注意我的上一个版本正在运行,尽管速度很慢。在 php.ini 中,我将 ide 设置为 xdebug,但我可以将其命名为任何我想要的会话名称,并且它有效。您可能不需要我在下面发布的所有信息,您很可能需要更改文件路径和文件名。我用的是D盘。

[xdebug]

;for windows with php5.3 and up you need to use zend_extension instead of zend_extension_ts
zend_extension="D:\wamp\bin\php\php5.4.3\ext\php_xdebug-2.2.1-5.4-vc9-x86_64.dll"
xdebug.remote_autostart=on
xdebug.profiler_output_dir = "d:/wamp/tmp/xdebug"
xdebug.profiler_output_name = "cachegrind.out.%p"
xdebug.profiler_enable = 1
xdebug.profiler_append=0
xdebug.extended_info=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=xdebug
xdebug.remote_log="d:/wamp/tmp/xdebug/xdebug_remot.log"
xdebug.show_exception_trace=On
xdebug.show_local_vars=9
xdebug.show_mem_delta=0
xdebug.trace_format=0

在此处输入图像描述

最后

不要忘记?XDEBUG_SESSION_START=sessionname在要测试的代码的 url 地址末尾使用。

例子

http://localhost/codetotest.php?XDEBUG_SESSION_START=xdebug

在进行任何更改后还要重新启动服务器的服务,否则它们将不会生效。

于 2012-10-02T07:36:43.187 回答
0

对于 Windows 8,最近的 xamp php 5.5 确保你有 VC11 和 xdebug dll:php_xdebug-2.2.3-5.5-vc11.dll,并插入上述 php.ini 修复,将 d:dir 替换为 c:path到你的 xamp。用 127... 替换 localhost 似乎很重要。

于 2013-07-30T03:42:28.600 回答