Changes

Jump to navigation Jump to search
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 196: Line 202:  
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
   −
===Editors and IDEs===
+
===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
   −
Some Open Source Editors/IDEs
+
In Komodo Go to Preferences, Debugger, Connections
   −
These all allow remote debugging.
+
Komodo should listen on:
 +
System provide port
   −
Komodo-IDE https://www.activestate.com/products/komodo-ide
+
Check 'I am running a debugger proxy'
 +
Listener address: IP.of.your.server:9003
 +
Proxy key: individual key name for this desktop
   −
Komodo Debug tools: https://code.activestate.com/komodo/remotedebugging/
+
Save and check that it connected to the debugger.
   −
Eclipse https://www.eclipse.org/
+
Now to debug a file:
   −
Netbeans https://netbeans.org/
+
https://your.server.ip/index.php?XDEBUG_SESSION_START=mydesktopkey
   −
Codium https://itsfoss.com/vscodium/ << Opensource version may not have extensions
+
Or
    +
https://your.server.ip/index.php?somevalue=3&XDEBUG_SESSION_START=mydesktopkey
   −
PHP debugging:
+
====Visual Studio/VS Codium ====
    
Sample launch.json
 
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.
    
  {
 
  {
Line 227: Line 341:  
             "type"        : "php",
 
             "type"        : "php",
 
             "request"    : "launch",
 
             "request"    : "launch",
            "port"        : 9001,
+
            "stopOnEntry" : false,
            "stopOnEntry" : false,
   
             "proxy": {
 
             "proxy": {
 
             "enable" : true,
 
             "enable" : true,
             "host" : "192.168.10.1",
+
             "host" : "my.server.ip",
             "key" : "myvsc",
+
             "key" : "users", // As set in the server above
 +
            "port": 9003,
 
             "allowMultipleSessions" : true
 
             "allowMultipleSessions" : true
 
             },
 
             },
 
             "pathMappings": {
 
             "pathMappings": {
             "/home/e-smith/files/ibays/testbay/html/Opencart_Admin_Rest_Api": "${workspaceFolder}"
+
             "/home/e-smith/files/ibays/testbay/html/phptestcode": "${workspaceFolder}"
 
             },
 
             },
 
         },
 
         },
Line 242: Line 356:  
  }
 
  }
   −
We then need to run the debug proxy from Komodo
+
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===
 +
 
 +
Some Open Source Editors/IDEs
 +
 
 +
These all allow remote debugging.
   −
python /root/dbgp/bin/pydbgpproxy -d 127.0.0.1:9000 -i 192.168.10.1:9001 -l DEBUG
+
Komodo-IDE https://www.activestate.com/products/komodo-ide
   −
Now you can run start the PHO debugger in Codium and then trigger it with a URL like this:
+
Komodo Debug tools: https://code.activestate.com/komodo/remotedebugging/
   −
https://my.SME.Server/testbay/myTestPhpFile.php?XDEBUG_SESSION_START=myvsc
+
Eclipse https://www.eclipse.org/
 +
 
 +
Netbeans https://netbeans.org/
   −
I can't see a remote Perl debugger as yet.
+
Codium https://itsfoss.com/vscodium/ - Use PHP Debug - felixfbecker.php-debug
 +
<br>
 +
For Codium I can't see a remote Perl debugger as yet.
    
----
 
----

Navigation menu