{"id":265,"date":"2015-06-16T20:42:11","date_gmt":"2015-06-16T18:42:11","guid":{"rendered":"http:\/\/staratnight.de\/blog\/?p=265"},"modified":"2018-12-02T16:48:34","modified_gmt":"2018-12-02T14:48:34","slug":"xdebug-fuer-php-in-intellij-idea-einrichten","status":"publish","type":"post","link":"https:\/\/staratnight.de\/blog\/xdebug-fuer-php-in-intellij-idea-einrichten\/","title":{"rendered":"XDebug f\u00fcr PHP in IntelliJ IDEA einrichten"},"content":{"rendered":"<p>Mit Hilfe von XDebug ist es m\u00f6glich, PHP-Anwendungen zu debuggen. Wie dies f\u00fcr IntelliJ eingerichtet wird beschreibe ich im Folgenden.<\/p>\n<p>&nbsp;<\/p>\n<h2>Download<\/h2>\n<p>Zun\u00e4chst muss die zur PHP-Version passende Version von XDebug heruntergeladen werden. Zu finden sind die Versionen auf der Downloadseite von XDebug: <a href=\"http:\/\/www.xdebug.org\/download.php\">http:\/\/www.xdebug.org\/download.php<\/a><\/p>\n<p>Hierbei ist auf die PHP-Version, die Bittigkeit (32 oder 64) zu achten. Zus\u00e4tzlich ist noch zu unterscheiden, ob die Thread-Safe-Version (TS) von PHP verwendet wird oder nicht.<\/p>\n<p>Wurde die richtige DLL heruntergeladen, muss diese in das PHP-Verzeichnis in den Ordner <em>ext<\/em> kopiert werden.<\/p>\n<p>&nbsp;<\/p>\n<h2>XDebug in PHP einrichten<\/h2>\n<p>Als n\u00e4chstes konfigurieren wir XDebug f\u00fcr PHP. Dies machen wir &#8211; wie alles f\u00fcr PHP &#8211; in der php.ini.<!--more--><\/p>\n<p>Folgender Eintrag sollte am Ende der Datei hinzugef\u00fcgt werden:<\/p>\n<pre class=\"lang:ps decode:true\">[Xdebug]\r\nzend_extension=\"H:\\Programme\\PHP\\PHP-5.4.41\\ext\\php_xdebug.dll\"\r\nxdebug.remote_enable=1\r\nxdebug.remote_port=\"9000\"\r\nxdebug.profiler_enable=1\r\nxdebug.profiler_output_dir=\"\\tmp\"<\/pre>\n<p><strong>Wichtig:<\/strong> Der Pfad zur DLL muss absolut angegeben werden. Mit einer relativen Pfadangabe habe ich es nicht zum Laufen bekommen.<\/p>\n<p>&nbsp;<\/p>\n<h2>XDebug in IntelliJ einrichten<\/h2>\n<p>Men\u00fc File -&gt; Settings, dann PHP. Hier sollte bereits der richtige PHP-Interpreter ausgew\u00e4hlt sein. Falls nicht, siehe <a href=\"http:\/\/staratnight.de\/blog\/entwicklungsumgebung-fuer-php-unter-windows-einrichten\/\">Entwicklungsumgebung f\u00fcr PHP unter Windows einrichten.<\/a><\/p>\n<p>Neben der Drop-Down-Box f\u00fcr den Interpreter befindet sich ein Button mit drei Punkten darauf (&#8230;). Klickt man den an, erscheint der Interpreters-Dialog.<\/p>\n<p>In dem Dialog wird die PHP-Version angezeigt (neben dem blauen Info-Icon) und daneben gibt es die M\u00f6glichkeit einen Debugger zu w\u00e4hlen. Als Debugger muss <em>xdebug<\/em> ausgew\u00e4hlt werden.<\/p>\n<p>Als n\u00e4chstes muss ein Server-Eingerichtet werden. Dazu im Men\u00fc Run -&gt; Edit Configuration ausw\u00e4hlen. \u00dcber das Plus-Symbol oben links eine neue Konfiguration erstellen und aus dem Drop-Down-Men\u00fc <em>PHP Web Application <\/em>w\u00e4hlen.<\/p>\n<p>Die Konfiguration bekommt einen Namen. Als n\u00e4chstes erstellen wir durch einen Klick auf den Button mit den drei Punkten neben der Zeile <em>Server<\/em> eine neue Server-Konfiguration. Wieder auf das gr\u00fcne Plus klicken und den Namen <em>Localhost <\/em>vergeben. Bei Host ebenfalls localhost eintragen, der Port bleibt 80 und als Debugger Xdebug ausw\u00e4hlen. Mit OK best\u00e4tigen.<\/p>\n<p>Bei Start URL nun den Namen der Einstiegsseite der Applikation hinterlegen (typischerweise index.php). Befindet sich die Anwendung in einem Unterordner, muss dieser entsprechend angegeben werden. Zur Kontrolle wird unter der Eingabezeile direkt der Pfad angezeigt, der sp\u00e4ter verwendet wird.<\/p>\n<p>Nun noch einen Browser ausw\u00e4hlen, der bei einer Debug-Session gestartet werden soll und mit Klick auf OK best\u00e4tigen.<\/p>\n<p>&nbsp;<\/p>\n<h2>PHP Built-in Web Server zum Debuggen verwenden<\/h2>\n<p>Leider scheint es nicht m\u00f6glich zu sein, den Build-In Webserver von PHP so zu konfigurieren, dass er sich aus IntelliJ heraus im Debug-Modus starten l\u00e4sst. Es gibt aber einen Trick, mit dem man diesen trotzdem verwenden kann.<\/p>\n<p>Dazu einen <em>PHP Built-in Webserver<\/em> konfigurieren und eine <em>PHP Web Application<\/em> wie oben beschrieben. Beide m\u00fcssen auf den gleichen Port konfiguriert sein und das Document root des internen Web Servers muss zum Pfad in der PHP Web Application passen.<\/p>\n<p>Nun einfach den Internen Web Server \u00fcber die Konfigurationsauswahl w\u00e4hlen und starten. Nun bei der Konfigurationsauswahl die <em>PHP Web Application<\/em> w\u00e4hlen und \u00fcber Debug starten. Die <em>PHP Web Application<\/em> verwendet nun den internen PHP Web Server, der auf dem gleichen Port l\u00e4uft.<\/p>\n<p>&nbsp;<\/p>\n<h2>Debuggen in IntelliJ mit XDebug<\/h2>\n<p>Durch einen Klick auf den linken Rand oder durch Strg + F8 lassen sich Breakpoints hinzuf\u00fcgen. Ruft man nun die Seite im Browser auf, h\u00e4lt die Anwendung an und man kann sich den Wert der Variablen anschauen und Schritt f\u00fcr Schritt durch den Code wandern.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit Hilfe von XDebug ist es m\u00f6glich, PHP-Anwendungen zu debuggen. Wie dies f\u00fcr IntelliJ eingerichtet wird beschreibe ich im Folgenden. &nbsp; Download Zun\u00e4chst&hellip;<\/p>\n","protected":false},"author":2,"featured_media":440,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,14],"tags":[],"class_list":["post-265","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-allgemein","category-php"],"_links":{"self":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts\/265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/comments?post=265"}],"version-history":[{"count":4,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts\/265\/revisions"}],"predecessor-version":[{"id":270,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts\/265\/revisions\/270"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/media\/440"}],"wp:attachment":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/media?parent=265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/categories?post=265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/tags?post=265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}