Line 189: |
Line 189: |
| It could be used in other scenarios, but not server-manager. | | It could be used in other scenarios, but not server-manager. |
| | | |
− | ====Multiple machine debug proxy====
| + | ===Multiple machine debug proxy=== |
| | | |
| TBA | | TBA |
Line 195: |
Line 195: |
| Notes are here: | | Notes are here: |
| http://docs.komodoide.com/Manual/debugger#debugging-programs-komodo-ide-only_remote-debugging_debugger-proxy | | http://docs.komodoide.com/Manual/debugger#debugging-programs-komodo-ide-only_remote-debugging_debugger-proxy |
| + | |
| + | ====PHP remote debugging==== |
| + | |
| + | You can debug on your local workstation but it is extremely useful to be able to debug direct on the server environment. |
| + | You may have one PHP version installed on your desktop but be running a different one on the server, and you may have a different server setup. |
| + | |
| + | First you need to install the xdebug packages eg: |
| + | |
| + | yum install php74-php-pecl-xdebug |
| + | yum install php80-php-pecl-xdebug |
| + | |
| + | Next you need a small template fragment to enable remote debugging: |
| + | |
| + | mkdir -p /etc/e-smith/templates-custom/etc/php.ini |
| + | nano /etc/e-smith/templates-custom/etc/php.ini/90XdebugSettings |
| + | |
| + | Add this: |
| + | |
| + | [Debugger] |
| + | ; /etc/e-smith/templates-custom/etc/php.ini |
| + | xdebug.remote_enable = true |
| + | xdebug.remote_host = 127.0.0.1 |
| + | xdebug.remote_port = 9000 |
| + | xdebug.remote_handler = dbgp |
| + | xdebug.remote_log = /var/log/xdebug.log |
| + | xdebug.remote_mode = req |
| + | xdebug.max_nesting_level = 5000 |
| + | |
| + | Expand templates and restart services: |
| + | |
| + | signal-event webapps-update |
| + | |
| + | We should see Xdebug here |
| + | |
| + | php74 -v |
| + | PHP 7.4.28 (cli) (built: Feb 15 2022 13:23:10) ( NTS ) |
| + | Copyright (c) The PHP Group |
| + | Zend Engine v3.4.0, Copyright (c) Zend Technologies |
| + | with Zend OPcache v7.4.28, Copyright (c), by Zend Technologies |
| + | with Xdebug v2.9.8, Copyright (c) 2002-2020, by Derick Rethans |
| + | |
| + | ====Komodo IDE==== |
| + | |
| + | We can obtain the debug proxy from the installation, and move it to the server and then execute from there: |
| + | |
| + | python /root/dbgp/bin/pydbgpproxy -d 127.0.0.1:9000 -i 192.168.10.1:9003 |
| + | |
| + | Or alternatively grab the lastest xdebug client here: |
| + | |
| + | mkdir /root/xdbg-proxy |
| + | cd /root/xdbg-proxy |
| + | curl https://xdebug.org/files/binaries/dbgpProxy -o dbgpProxy |
| + | chmod 0700 dbgpProxy |
| + | ./dbgpProxy -s 127.0.0.1:9000 -i 192.168.10.1:9003 |
| + | |
| + | In Komodo Go to Preferences, Debugger, Connections |
| + | |
| + | Komodo should listen on: |
| + | System provide port |
| + | |
| + | Check 'I am running a debugger proxy' |
| + | Listener address: IP.of.your.server:9003 |
| + | Proxy key: individual key name for this desktop |
| + | |
| + | Save and check that it connected to the debugger. |
| + | |
| + | Now to debug a file: |
| + | |
| + | https://your.server.ip/index.php?XDEBUG_SESSION_START=mydesktopkey |
| + | |
| + | Or |
| + | |
| + | https://your.server.ip/index.php?somevalue=3&XDEBUG_SESSION_START=mydesktopkey |
| + | |
| + | ====Visual Studio/VS Codium==== |
| + | |
| + | Sample launch.json |
| + | |
| + | Note for newer versions of Xdebug the default port is now 9003 |
| + | Pay careful attention to the path mapping,. This has to be absolutely correct or it will not work. |
| + | |
| + | { |
| + | // Use IntelliSense to learn about possible attributes. |
| + | // Hover to view descriptions of existing attributes. |
| + | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 |
| + | "version": "0.2.0", |
| + | "configurations": [ |
| + | { |
| + | "name" : "vscphpdebug", |
| + | "type" : "php", |
| + | "request" : "launch", |
| + | "stopOnEntry" : false, |
| + | "proxy": { |
| + | "enable" : true, |
| + | "host" : "my.server.ip", |
| + | "key" : "mycodiumkey", |
| + | "port": 9003, |
| + | "allowMultipleSessions" : true |
| + | }, |
| + | "pathMappings": { |
| + | "/home/e-smith/files/ibays/testbay/html/phptestcode": "${workspaceFolder}" |
| + | }, |
| + | }, |
| + | ] |
| + | } |
| + | |
| + | Now you can run start the PHP debugger in Codium so it connects the to the debug server, and then trigger it with a URL like this: |
| + | |
| + | https://my.SME.Server/testbay/phptestcode/myTestPhpFile.php?XDEBUG_SESSION_START=mycodiumkey |
| | | |
| ===Editors and IDEs=== | | ===Editors and IDEs=== |
Line 202: |
Line 311: |
| These all allow remote debugging. | | These all allow remote debugging. |
| | | |
− | https://itsfoss.com/vscodium/ | + | Komodo-IDE https://www.activestate.com/products/komodo-ide |
− | https://www.activestate.com/products/komodo-ide/ | + | |
− | https://www.eclipse.org/ | + | Komodo Debug tools: https://code.activestate.com/komodo/remotedebugging/ |
− | https://netbeans.org/ | + | |
| + | Eclipse https://www.eclipse.org/ |
| + | |
| + | Netbeans https://netbeans.org/ |
| + | |
| + | Codium https://itsfoss.com/vscodium/ - Use PHP Debug - felixfbecker.php-debug |
| + | <br> |
| + | For Codium I can't see a remote Perl debugger as yet. |
| | | |
| ---- | | ---- |