12 - XDEBUG

Zuletzt aktualisiert am 2. Februar 2024 2 Minuten

XDEBUG installieren

Xdebug wurde aus dem Homebrew entfernt, und muss deshalb über PECL installiert werden.

https://xdebug.org/notes/install#peclexternal link

// sphp 7.3
pecl uninstall -r xdebug
pecl install xdebug

Entferne den Eintrag zend_extension="xdebug.so", den PECL zur oberen Zeile der php.ini hinzufügt.

codium /usr/local/etc/php/7.3/php.ini

Erzeuge

codium /usr/local/etc/php/7.3/conf.d/ext-xdebug.ini

kopiere folgendes hinein…

[xdebug]
zend_extension="xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000

Server neustarten

sudo apachectl -k restart

check: http://localhost/info.php

Tool zum schnellen Aktivieren/Deaktivieren von xdebug

curl -L https://gist.githubusercontent.com/rhukster/073a2c1270ccb2c6868e7aced92001cf/raw > /usr/local/bin/xdebug
chmod +x /usr/local/bin/xdebug
xdebug
xdebug on
xdebug off

Wenn Xdebug immer noch in php -v erscheint kann es sein, das du den zend_extension="xdebug.so" Eintrag in der `php.ini´ nicht entfernt hast.

yaml, pecl und xdebug schnell installieren

sphp 7.3
pecl uninstall -r apcu && pecl install apcu && pecl uninstall -r yaml && pecl install yaml && pecl uninstall -r xdebug && pecl install xdebug

Wenn die Konfigurationsdatei einmal (conf.d/ext-[library].ini) erstellt ist, kann man sie einfach von einer PHP-Version auf eine andere kopieren.

cd /usr/local/php/5.6/conf.d
$ cp ext-apcu.ini ext-xdebug.ini ext-yaml.ini ../../7.0/conf.d
$ cp ext-apcu.ini ext-xdebug.ini ext-yaml.ini ../../7.1/conf.d
$ cp ext-apcu.ini ext-xdebug.ini ext-yaml.ini ../../7.2/conf.d
$ cp ext-apcu.ini ext-xdebug.ini ext-yaml.ini ../../7.3/conf.d

XDEBUG installieren, kompilieren und einrichten

Erstelle eine info.php Datei um die PHP Info im Browser aus zu geben

echo “<?php phpinfo();” > ~/Sites/info.php

copy and paste die Ausgabe von … https://mein-projekt.test/info.php in den Wizard:

https://xdebug.org/wizard.phpexternal link

Download und unpack das dort vorgeschlagene Paket, und dann nacheinander…

cd /Users/my_username/Downloads/xdebug-2.7.2-2/xdebug-2.7.2
phpize
./configure
make
cp modules/xdebug.so /usr/local/lib/php/pecl/20180731
codium /usr/local/etc/php/7.3/php.ini

zend_extension muss sich unter der Zeile OPcache befinden.

xdebug und Browser

xdebug helper für den Browser installieren:

https://addons.mozilla.org/en-US/firefox/addon/xdebug-helper-for-firefox/?src=searchexternal link

oder an die URL hängen…

?XDEBUG_SESSION_START=myPHPScript

In VSCodium muss der Debugger konfiguriert werden. Dazu wird die Datei launch.json bearbeitet:

{
    "name": "listen for XDebug",
    "type": "php",
    "request": "launch",
    "port":9000
},
{
    "name": "launch currently open script",
    "type": "php",
    "request": "launch",
    "program": "${file}",
     "stopOnEntry":true,
    "cwd":"${fileDirname}",
    "port":9000,
    "runtimeExecutable": "/usr/local/bin/php"
}

XDebug Session starten

  • XDebug Helper im Browser aktivieren
  • F9 Toggled Brakepoint
  • F5 startet den Debugger