Bisher hat sich mein Einsatz von Xdebug zum Debugging von PHP auf meinen lokalen XAMPP-Server beschränkt. Nun musste ich kürzlich zum Debuggen eines Problems mit PayPal in WooCommerce aber Xdebug auf einem Remote-Server nutzen – hier erkläre ich kurz, wie das auf Uberspace funktioniert.
Die Installation von Xdebug auf Uberspace ist recht einfach – das Ausführen des folgenden Befehls ist alles, was ihr tun müsst:
Code-Sprache: Bash (bash)uberspace-install-pecl xdebug
Mein Ende der php.ini
mit den Infos zu Xdebug sieht so aus:
extension_dir = /home/userName/pecl
zend_extension = xdebug.so
xdebug.default_enable = 1
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000
xdebug.remote_autostart = 1
xdebug.idekey = PHPSTORM
Code-Sprache: JavaScript (javascript)
Die Angaben müsst ihr natürlich gegebenenfalls anpassen – mindestens userName
gegen euren Uberspace-Nutzernamen austauschen.
In PhpStorm sehen die Einstellungen unter Languages & Frameworks › PHP › Servers so aus:
- Für Name und Host gebe ich die Domain an.
- Port ist 80, Debugger ist Xdebug.
- Ein Haken bei Use path mappings.
- Für den lokalen Ordner des Projekts wird der entsprechende absolute Pfad auf dem Remote-Server angegeben.
Bevor nun auf Xdebug auf dem Remote-Server gelauscht werden kann, muss ein SSH-Tunnel zum Server aufgebaut werden. Dabei muss derselbe Port genutzt werden, der in den Xdebug-Einstellungen von PhpStorm und der php.ini
angegeben ist (in meinem Fall, und das ist glaube ich der Standardwert, 9000). Das sieht so aus:
Code-Sprache: Bash (bash)ssh -R 9000:localhost:9000 user@server.de
Danach kann mit dem Debuggen angefangen werden. Wie der SSH-Tunnel auf Windows mit Putty eingerichtet werden kann, könnt ihr im Confluence von JetBrains nachlesen. Der Weg oben funktioniert für Linux, Mac und auf dem Linux Subsystem on Windows 10.
Danke an Lukas, der mir dabei geholfen hat, das Ganze zum Laufen zu kriegen 🙂
Hey,
in ner neueren PHPStorm Version muss man den Debugger Validieren. Ich hab den Remoteserver konfiguriert und nen SSH Tunnel offen, dir Validierung schlägt aber fehl. Wie bekomme ich die Sache zum Laufen?
Gruß Christopher.
Hi Christopher,
was für eine Fehlermeldung gibt dir der Validator denn? Kann es gerade auf die Schnelle nicht testen da ich auf meinem neuen Dev-Uberspace-7 kein Xdebug habe …
Viele Grüße
Florian