NetBeans上的PHP xdebug不起作用

时间:2017-08-08 05:13:32

标签: php netbeans xdebug

我做了3天的研究,并没有真正解决我的问题。

这是我在php.ini中的xdebug设置

xdebug.idekey="netbeans-xdebug"
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1    # Not safe for production servers
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true

My NetBeans run-configuration

我注意到写这个问题的一件事是,即使我正在调试端口,当我将其设置为8000时始终设置为9000

enter image description here

enter image description here

所以我想也许NetBeans指向错误的php.ini?我在test.php中运行phpinfo(),它给了我这个:

enter image description here

现在我完全迷失了。我该怎么做才能让xdebug在NetBeans上运行?

编辑:我在NetBeans上使用内部网络服务器

编辑:事情开始进展但现在NetBeans给了我这个奇怪的输出:

"D:\bit_nami\php\php.exe" "-S" "localhost:9001"
[Tue Aug 08 02:42:38 2017] PHP Warning:  PHP Startup: Unable to load dynamic library 'D:\bit_nami\php\ext\php_pdo_firebird.dll' - 占쏙옙占쏙옙占쏙옙 占쏙옙占� 찾占쏙옙 占쏙옙 占쏙옙占쏙옙占싹댐옙.
 in Unknown on line 0
[Tue Aug 08 02:42:38 2017] PHP Warning:  PHP Startup: Unable to load dynamic library 'D:\bit_nami\php\ext\php_pdo_oci.dll' - 占쏙옙占쏙옙占쏙옙 占쏙옙占� 찾占쏙옙 占쏙옙 占쏙옙占쏙옙占싹댐옙.
 in Unknown on line 0
[Tue Aug 08 02:42:38 2017] PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0
[Tue Aug 08 02:42:38 2017] PHP Warning:  Module 'xdebug' already loaded in Unknown on line 0
[Tue Aug 08 02:42:38 2017] Failed to listen on localhost:9001 (reason: 액세스 권한에 의해 숨겨진 소켓에 액세스를 시도했습니다.
)
<br />
<b>Warning</b>:  PHP Startup: Unable to load dynamic library 'D:\bit_nami\php\ext\php_pdo_firebird.dll' - 占쏙옙占쏙옙占쏙옙 占쏙옙占� 찾占쏙옙 占쏙옙 占쏙옙占쏙옙占싹댐옙.
 in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Warning</b>:  PHP Startup: Unable to load dynamic library 'D:\bit_nami\php\ext\php_pdo_oci.dll' - 占쏙옙占쏙옙占쏙옙 占쏙옙占� 찾占쏙옙 占쏙옙 占쏙옙占쏙옙占싹댐옙.
 in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Warning</b>:  Xdebug MUST be loaded as a Zend extension in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Warning</b>:  Module 'xdebug' already loaded in <b>Unknown</b> on line <b>0</b><br />
Done.

2 个答案:

答案 0 :(得分:1)

您需要匹配端口三个不同的位置:

  1. php.ini文件
  2. Netbeans&gt;选项&gt; php&gt;调试&gt;调试器端口
  3. Netbeans&gt;项目属性&gt;运行配置&gt;高级Web配置&gt;调试器代理端口(假设您正在运行本地网站(在本地Web服务器上运行))。
  4. 然后确保设置xdebug.remote_host或xdebug.remote_connect_back = 1。设置它们都不起作用。

    建议对php.ini进行以下设置

    [xdebug]
    zend_extension=xdebug.so
    xdebug.remote_enable=on
    xdebug.default_enable=on
    xdebug.idekey="netbeans-xdebug"
    xdebug.remote_handler=dbgp
    xdebug.remote_autostart=off
    xdebug.remote_port=9001
    xdebug.remote_host=localhost
    xdebug.profiler_enable_trigger=1
    xdebug.profiler_output_name=xdebug-profile-cachegrind.out-%H-%R
    xdebug.var_display_max_children = 128
    xdebug.var_display_max_data = 2048
    xdebug.var_display_max_depth = 128
    xdebug.max_nesting_level=200
    

    有关详细信息,请访问How To Configure XDebug

答案 1 :(得分:0)

我正在运行带有php和XDebug的Netbeans(在Windows / Apache上)。它工作正常。 (我还使用Netbeans内置Web服务器进行了检查)

我的php.ini的相关部分:

zend_extension=C:\Bitnami\wampstack-5.4.35-0\php\ext\php_xdebug-2.2.6-5.4-vc9.dll
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

在默认设置(使用内置服务器)中,浏览器通过端口8000与PHP内置服务器通信,PHP内置服务器通过端口9000与Netbeans调试器部件进行通信。

因此,在某些Windows系统上,您必须在php可执行文件的防火墙设置中打开/允许这两个端口。