Line 72: |
Line 72: |
| I have been using Komodo IDE courtesy of an Open Source Developers licence from [http://komodoide.com/ Activestate] | | I have been using Komodo IDE courtesy of an Open Source Developers licence from [http://komodoide.com/ Activestate] |
| | | |
− | They produce an Open Source 'light' version of the full IDE called [http://komodoide.com/komodo-edit/ Komodo Edit] but it does not have the debug facilities.
| + | You can now get the app for free here but need a free account to use it: |
| + | |
| + | https://www.activestate.com/products/komodo-ide/download-ide/ |
| | | |
| The simplest mode to use with Komodo IDE is to just use the IDE as a debugger to step through code. Code on the remote server can be edited if you have sufficient permissions. | | The simplest mode to use with Komodo IDE is to just use the IDE as a debugger to step through code. Code on the remote server can be edited if you have sufficient permissions. |
| | | |
− | http://docs.komodoide.com/Manual/debugperl
| + | https://docs.activestate.com/komodo/12/manual/debugger.html |
| | | |
− | This will enable us to work with one desktop and one server. See the section on debug proxy for multiple connections | + | This will enable us to work with one desktop and one server. See the section on debug proxy for multiple connections. |
| | | |
| ====Server setup==== | | ====Server setup==== |
Line 139: |
Line 141: |
| In Komodo preferences you need to setup a Server/Remote Account for the remote server. e.g. | | In Komodo preferences you need to setup a Server/Remote Account for the remote server. e.g. |
| | | |
− | Remote Account : Test_v9 | + | Remote Account : Test_v10 |
| Type: SCP | | Type: SCP |
| Port: 2222 | | Port: 2222 |
Line 159: |
Line 161: |
| ====Local file mapping==== | | ====Local file mapping==== |
| | | |
− | Although I have not tried this I believe that you can potentially map from the server to your local files. You can then edit locally, upload and re test.
| + | I seemed to have managed this using sshfs: |
| + | |
| + | shfs -p 2222 root@192.168.10.199:/ ~/Mounts/somedirectory |
| + | |
| + | You can then access the files normally and it is easy to map the remote to the 'local' files. |
| | | |
| ====Tidying up afterwards==== | | ====Tidying up afterwards==== |
Line 189: |
Line 195: |
| 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 201: |
| 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 |
| + | |
| + | ===Perl with Visual Studio=== |
| + | |
| + | Still working on this but we need Perl Language Server |
| + | |
| + | yum --enablerepo=* install gcc gcc-c++ perl-App-cpanminus perl-AnyEvent-AIO perl-Coro |
| + | |
| + | cpanm Class::Refresh |
| + | cpanm ExtUtils::CBuilder |
| + | cpanm Compiler::Lexer |
| + | cpanm Hash::SafeKeys |
| + | cpanm Perl::LanguageServer |
| + | |
| + | ====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: |
| + | |
| + | {{Note box|Xdebug 3 is not available for PHP versions less than 7.2 You will need php54-php-pecl-xdebug}} |
| + | |
| + | yum install php74-php-pecl-xdebug3 |
| + | yum install php80-php-pecl-xdebug3 |
| + | |
| + | Or |
| + | |
| + | yum install php*php-pecl-xdebug3 |
| + | |
| + | Next you need a small template fragment to enable remote debugging. |
| + | |
| + | =====Xdebug 2===== |
| + | |
| + | 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 = 9001 |
| + | xdebug.remote_handler = dbgp |
| + | xdebug.remote_log = /var/log/xdebug.log |
| + | xdebug.remote_mode = req |
| + | xdebug.max_nesting_level = 5000 |
| + | |
| + | |
| + | =====Xdebug 3 ===== |
| + | |
| + | New syntax. |
| + | |
| + | https://xdebug.org/docs/upgrade_guide |
| + | https://xdebug.org/docs/all_settings |
| + | |
| + | nano /etc/e-smith/templates-custom/etc/php.ini/90XdebugSettings |
| + | |
| + | [Debugger] |
| + | xdebug.start_with_request = yes |
| + | xdebug.discover_client_host = true |
| + | xdebug.client_host = localhost |
| + | xdebug.client_port = 9003 |
| + | xdebug.idekey = users |
| + | xdebug.mode = debug |
| + | xdebug.log = /var/log/xdebug.log |
| + | |
| + | |
| + | 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 |
| + | |
| + | Or like this: |
| + | |
| + | php80 -v |
| + | PHP 8.0.19 (cli) (built: May 10 2022 08:07:35) ( NTS gcc x86_64 ) |
| + | Copyright (c) The PHP Group |
| + | Zend Engine v4.0.19, Copyright (c) Zend Technologies |
| + | with Zend OPcache v8.0.19, Copyright (c), by Zend Technologies |
| + | with Xdebug v3.1.5, Copyright (c) 2002-2022, 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:9001 -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:9001 -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" : "users", // As set in the server above |
| + | "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 366: |
| These all allow remote debugging. | | These all allow remote debugging. |
| | | |
− | [https://www.activestate.com/products/komodo-ide/ https://www.activestate.com/products/komodo-ide]
| + | Komodo-IDE https://www.activestate.com/products/komodo-ide |
| + | |
| + | Komodo Debug tools: https://code.activestate.com/komodo/remotedebugging/ |
| | | |
− | ht[https://www.eclipse.org/ tps://www.eclipse.org/]
| + | Eclipse https://www.eclipse.org/ |
| | | |
− | https://netbeans.org/ | + | Netbeans https://netbeans.org/ |
| | | |
− | https://itsfoss.com/vscodium/ << Opensource version may not have extensions | + | Codium https://itsfoss.com/vscodium/ - Use PHP Debug - felixfbecker.php-debug |
| + | <br> |
| + | For Codium I can't see a remote Perl debugger as yet. |
| | | |
| ---- | | ---- |