Changes

From SME Server
Jump to navigationJump to search
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 196: Line 196:  
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===
 +
 +
Some Open Source Editors/IDEs
 +
 +
These all allow remote debugging.
 +
 +
Komodo-IDE https://www.activestate.com/products/komodo-ide
 +
 +
Komodo Debug tools: https://code.activestate.com/komodo/remotedebugging/
 +
 +
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.
    
----
 
----
 
[[Category:Howto]]
 
[[Category:Howto]]
 
[[Category:Developer]]
 
[[Category:Developer]]
 +
[[Category:SME Server Development Framework]]
 +
[[Category:Development Tools]]

Navigation menu