Bestehende Lamp-Installation von Linux mit XDebug erweitern.
Auf meinem Linux System wollte ich die Apache + PHP-Installation um Debugging Funktionen erweitern. Die Vorgehensweise für Windows gibt es hier.
In Linux ist es prinzipiell sogar einfacher. Hier muss je nach System nur die passende XDebug-Version über die Paketverwaltung installiert werden.
In meinem Fall, openSuse, war dies:
sudo zypper in php7-xdebug sudo zypper in php8-xdebug
Den jeweiligen Befehl einfach der Seite entnehmen. Leider war es damit erstmal nicht getan. Beim ersten Versuch zu debuggen kam nur folgende Fehlermeldung:
Error: spawn /usr/share/php EACCES at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19) at onErrorNT (node:internal/child_process:477:16) at processTicksAndRejections (node:internal/process/task_queues:83:21) { errno: -13, code: 'EACCES', syscall: 'spawn /usr/share/php', path: '/usr/share/php', spawnargs: [ '-dxdebug.start_with_request=yes', '/srv/www/htdocs/test_project/index.php' ] }
Zwar war PHP installiert, aber das Command Line Interface Paket hat gefehlt. Dieses ließ sich aber recht schnell nachinstallieren:
sudo zypper install php8-cli
Anschließend musste Visual Studio Code noch den Suchpfad zu PHP genannt bekommen. Dies ist allerdings recht einfach. In der „settings.json“ wird folgender Eintrag ergänzt. Fehlt dieser komplett, bemängelt dies Visual Studio Code ohnehin.
"php.debug.executablePath": "php",
Leider hat es nun noch immer nicht geklappt. Xdebug war zwar aktiv, aber an Breakpoints wurde nicht angehalten. Hier fehlten noch ein paar Einträge in der „php.ini“ Datei.
xdebug.mode=debug xdebug.client_host=127.0.0.1 xdebug.client_port=9000