【问题标题】:XDebug not loading on Windows 7 64 bit PHP 5.4XDebug 未在 Windows 7 64 位 PHP 5.4 上加载
【发布时间】:2012-04-18 16:23:54
【问题描述】:

我在 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

【问题讨论】:

    标签: php xdebug


    【解决方案1】:

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

    【讨论】:

    • 由于某种原因,当我尝试这个时,向导没有工作。它实际上仍然无法正常工作。我转到本地主机上的 phpinfo.php 页面,按 CTRL+A,然后按 CTRL+C,然后将结果粘贴到向导中。它吐出了一些信息,但并不完整。然后它说“找不到任何有用的信息。”
    • 关于 Xdebug 向导的说明:我在 Windows 7 上运行 PHP 5.4.14,他们的向导站点告诉我只需添加行 zend_extension = C:\PHP\ext。但是为了让它工作,我必须定义实际的文件路径,就像在这个问题的例子中一样,而不仅仅是它所在的目录。此外,你肯定需要添加更多的行到 php.ini 到让它工作。 Follow this guide 你是金子。
    • @Derick 感谢您提供该链接。很棒的工具。
    • 当您尝试从 xdebug 站点下载它时,如果它告诉您找不到模块怎么办?你接下来要做什么?
    • 使用向导!
    【解决方案2】:

    好的,它现在正在运行,我想我知道出了什么问题。我使用的是 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/

    【讨论】:

    • ...并确保使用正确的版本“线程安全”[ts] 或“无线程安全”[nts]
    【解决方案3】:

    我终于让它工作了。 按照 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 它奏效了!!

    【讨论】:

    • 谢谢,这是我需要的 Windows 10 修复程序。
    • 谢谢!为我工作。 PHP 7.2、Xdebug 2.6、Windows 10。
    • 您的回答促使我进行更好的调查。就我而言,问题是错误的 dll 版本,即使我的系统是 Windows 10-64,它也将 xdebug 假装为 32,可能我安装了 32 位 xampp(或 php,我还要检查)谢谢!
    • 这是我这样做时得到的结果 PS C:\Users\Username> php -v 警告:加载 Zend 扩展 'php_xdebug-2.9.8-7.4-vc15-x86_64.dll' 失败(试过:C:/laragon/bin/php/php-8.0.0-Win32-vs16-x64/ext\php_xdebug-2.9.8-7.4-vc15-x86_64.dll(找不到指定的模块),C: /laragon/bin/php/php-8.0.0-Win32-vs16-x64/ext\php_php_xdebug-2.9.8-7.4-vc15-x86_64.dll.dll(找不到指定的模块))在线未知0 PHP 8.0.0 (cli) (built: Nov 24 2020 22:02:57) (ZTS Visual C++ 2019 x64) 版权所有 (c) The PHP Group Zend Engine v4.0.0-dev, 版权所有 (c) Zend Technologies跨度>
    【解决方案4】:

    在最新版本的xampp中,您只需将zend_extension=xdebug添加到php.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"
    

    【讨论】:

    • 这里假设 dll 文件名是php_xdebug.dll
    【解决方案5】:

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

    PHP.INI 要求对目录使用正斜杠,而在 windows 下安装 XDebug 的说明使用反斜杠。所以对于上面原来的问题,解决办法就是把zend_extension这一行改成:

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

    希望这会有所帮助。

    【讨论】:

    • 这似乎不是真的。这是我的 ini 条目:zend_extension = "C:\development\languages\php5517tsx86\ext\php_xdebug-2.2.5-5.5-vc11.dll" 并且有效。
    • 我也有反斜杠并且一切正常,我的问题是我在 x64 系统上安装了 x86 PHP 并错误地使用了 x64 Xdebug dll。帮助自己检查phpinfo();输出并选择x86/x64和TS/NTS
    • 我有反斜杠,这对我有用,但不适用于我的同事。正斜杠对她也不起作用......
    【解决方案6】:

    查看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"
    

    【讨论】:

    • php_debug.dll 不在其中。我按照你的建议做了,但仍然出现错误。
    • 嗯,值得一试。我能提出的唯一其他建议是,您尝试在此处使用 Xdebug 二进制文件运行 PHP 5.3:downloads.php.net/pierre
    【解决方案7】:

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

    【讨论】:

      【解决方案8】:

      我有 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"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-06
        • 2014-05-27
        • 2015-11-16
        • 1970-01-01
        • 2018-03-26
        • 2011-06-05
        • 2011-10-05
        相关资源
        最近更新 更多