Debugging php-cli scripts with xdebug and netbeans?

前端 未结 7 982
闹比i
闹比i 2021-01-29 19:40

I have managed to initiate php-cli script debug session from the IDE itself, but I need to start the debugging session from the shell / command line. These are rather complex ma

相关标签:
7条回答
  • 2021-01-29 20:14

    Add xdebug.remote_autostart=On to your php.ini file or add -dxdebug.remote_autostart=On as parameter to the PHP binary call (php -d... script.php).

    See http://xdebug.org/docs/remote

    0 讨论(0)
  • 2021-01-29 20:14

    Make sure you also setup DBGP_IDEKEY value, because usually it is not idekey. For example on Linux:

    export DBGP_IDEKEY="netbeans-xdebug" 
    export XDEBUG_CONFIG="netbeans-xdebug=netbeans-xdebug"
    
    0 讨论(0)
  • 2021-01-29 20:19

    I got this working on Ubuntu/Netbeans by:

    • copying the xdebug config lines from the /etc/php5/apache2/php.ini file into /etc/php5/cli/php.ini
    • setting an environment variable with the name of the debug session (you can get this from the query string in the url of the page netbeans launches when you start debugging) so the command is: export XDEBUG_CONFIG="idekey=netbeans-xdebug"

    Then it's simply a case of starting debugging in netbeans and doing php myscript.php at the command line.

    Note: If you want to debug remotely using netbeans you need to use Debug File on the file that is being run from the command line, not normal Debug.

    0 讨论(0)
  • 2021-01-29 20:24

    I had the same problem, my solution was this:

    1. Environment: Netbeans 8.2 under windows (apache+php)
    2. Assuming you already have PHP and NetBeans configured to debug code using Xdebug (http://wiki.netbeans.org/HowToConfigureXDebug#Notes_on_Windows_Configuration)
    3. On netbeans create new Configuration (“Project Properties” > “Run configuration” > “New…”
    4. In the new Configuration set Do Not Open web Browser (“Advanced” > “Do Not Open web Browser”)
    5. Set active the new configuration created (drop down in tool bar)
    6. Set breakpoint for debug
    7. Open debug (CTRL+F5)
    8. Open Terminal window (“Tools” > “Open in Terminal”)
    9. Type in terminal: $ export XDEBUG_CONFIG="idekey=netbeans-xdebug" (the value "netbeans-xdebug" must coincide with “Tools” > “Options” > “Debugging” > “Session ID”)
    10. Type in terminal: $ php.exe -f "C:\Apache24\htdocs\www.SiteName\ScriptName.php" -- "Arg1=x&Arg2=y"
    11. Follow debug…
    0 讨论(0)
  • 2021-01-29 20:25

    You can use the Dephpugger project if you dont want to configure xDebug for your IDE (i hate configurations).

    https://github.com/tacnoman/dephpugger

    You can run the debugger in terminal, like ipdb for Python and byebug for Ruby.

    0 讨论(0)
  • 2021-01-29 20:33

    I will put all together, the following is that works for me.

    file:
    /etc/php5/cli/php.ini
    
    zend_extension="/usr/lib/php5/20121212/xdebug.so" -> xdebug bin path
    xdebug.remote_enable=on
    xdebug.remote_host=127.0.0.1
    xdebug.remote_handler="dbgp"
    xdebug.remote_mode="req"
    xdebug.remote_port=9000 -> same port configured in netbeans debugging tab
    xdebug.idekey="netbeans-xdebug" -> same ide configured in netbeans debuggin tab
    xdebug.remote_autostart=1
    

    then, without any other parameter

    php script.php

    0 讨论(0)
提交回复
热议问题