21

我在 apache 上运行 php。我已经下载了我认为正确的 xdebug 编译 dll 用于 php 版本 5.4 64 位窗口。我启用了线程安全,它使用的是 VC9。我已经下载了 dll 并把它放在这里:

C:\php5\extras\php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll

这是我的 php.ini 中的内容:

[xdebug]
zend_extension = "C:\php5\extras\php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll"

当我启动 Apache 时,我收到此错误:

[Wed Apr 04 17:01:56 2012] [notice] Parent: Received restart signal -- Restarting the server.
Failed loading C:\php5\extras\php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll
hild process is ending.
[Wed Apr 04 17:01:56 2012] [notice] Apache/2.2.22 (Win32) PHP/5.4.0 configured -- resuming normal operations
[Wed Apr 04 17:01:56 2012] [notice] Server built: Jan 28 2012 11:16:39
[Wed Apr 04 17:01:56 2012] [notice] Parent: Created child process 2120
[Wed Apr 04 17:01:57 2012] [notice] Child 2120: Child process is running
[Wed Apr 04 17:01:57 2012] [notice] Child 2120: Acquired the start mutex.
[Wed Apr 04 17:01:57 2012] [notice] Child 2120: Starting 64 worker threads.
[Wed Apr 04 17:01:57 2012] [notice] Child 5624: Released the start mutex
[Wed Apr 04 17:01:58 2012] [notice] Child 5624: All worker threads have exited.
[Wed Apr 04 17:01:58 2012] [notice] Child 5624: Child process is exiting
Failed loading C:\php5\extras\php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll
4

8 回答 8

62

为了确保您下载了正确的二进制文件,您可以使用http://xdebug.org/wizard.php上的向导它会准确地告诉您要下载哪个文件以及您应该将哪个 php.ini 文件放入zend_extension 行(当然,您现在使用的是正确的行,因为您收到“加载失败”错误)。

于 2012-04-05T08:54:19.360 回答
19

好的,它现在正在工作,我想我知道出了什么问题。我使用的是 64 位版本的 PHP,但使用的是 32 位版本的 Apache 和 64 位版本的 xdebug。我重新开始使用 Apache 2.4 32 位,因为 php5 模块似乎没有 64 位版本。所以,我确保我拥有一切的 32 位版本。我正在使用 php5.4 和 VC9,线程安全。

这篇博文有助于设置它:http: //lifeofageekadmin.com/how-install-apache-2-4-php-5-4-and-mysql-5-5-21-on-windows-7/

于 2012-04-05T18:53:31.233 回答
19

我终于让这个工作了。按照 xdebug 网站上的说明,我使用向导将 dll 文件下载到“ext”目录。然后向导告诉我将此行添加到我的 php.ini 文件中:zend_extension=ext\php_xdebug-2.3.3-5.6-vc11.dll

这给了我上面看到的错误:Failed loading ext\php_xdebug-2.3.3-5.6-vc11.dll

我还尝试用正斜杠替换反斜杠,但失败并显示以下消息:Failed loading ext\ext/php_xdebug-2.3.3-5.6-vc11.dll

查看最后一条消息,我认为可能是扩展目录引起了问题,我在 php.ini 文件中看到了这一行:extension_dir = "ext"

所以我改用:zend_extension=php_xdebug-2.3.3-5.6-vc11.dll 它有效!

于 2015-08-05T18:32:41.257 回答
7

在最新版本中xampp你只需要添加zend_extension=xdebugphp.ini,例如:

zend_extension=xdebug
[XDebug]
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "c:\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.trace_output_dir = "c:\xampp\php"
xdebug.remote_autostart=on
xdebug.remote_enable=on
xdebug.remote_connect_back=on
xdebug.remote_port=9000
xdebug.remote_mode=req
xdebug.idekey="PHPSTORM"
于 2018-07-10T08:15:59.357 回答
4

好的,我知道这是一个非常古老的僵尸线程,但是最近自己解决了这个问题,结果证明有一个简单的解决方案。

PHP.INI 要求对目录使用正斜杠,而在 windows 下安装 XDebug 的说明使用反斜杠。所以对于上面的原始问题,解决方法是将zend_extension行改为:

zend_extension = "C:/php5/extras/php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll"

希望这可以帮助。

于 2015-02-24T21:01:07.340 回答
2

进去C:\php5\ext看看是否php_xdebug.dll已经在里面。如果没有,请尝试重命名php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll并将php_xdebug.dll其放入C:\php5\ext,然后将您的php.ini添加更改为:

[xdebug]
zend_extension = "C:\php5\ext\php_xdebug.dll"
于 2012-04-04T23:55:44.090 回答
0

有同样的问题。对我来说,我需要zend_extension引号中的 , 的绝对路径(但反斜杠很好)。

于 2016-01-09T19:31:15.253 回答
0

我有 Windows 7 64bit 和 php v5.4.4,但我需要下载的 x-debug 版本是:

PHP 5.4 VC9 (32 位) (MD5: ffeb0215621d330fa53b249f0930ffae)

因为 IIS 不能使用 xdebug 64bit

还有我的 php.ini 说明:

[Xdebug]
zend_extension="C:\Program Files (x86)\iis express\PHP\v5.4\ext\php_xdebug-2.4.0rc4-5.4-vc9-nts.dll"
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.profiler_enable=1
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "C:\temp\php"
xdebug.profiler_output_dir="C:\temp\php"
于 2016-02-10T19:00:44.667 回答