Kann ich PHP-Dateien unter Eclipse PDT ohne Apache debuggen?

9

Ich habe gerade Eclipse PDT 3.0.2 installiert (ich weiß nicht, welche Eclipse-Basis das ist, Galileo oder Helios), und ich habe den Schritt von NetBeans genossen. Als ich meine PHP-Entwicklung ernster nahm (ich habe kürzlich nur von ASP.NET expandiert), entschied ich mich dafür, meine PHP-Dateien direkt unter meinem Xampp Apache doc root (htdocs) zu bearbeiten und einen Arbeitsbereich unter meiner gewohnten Quelle zu erstellen , c: \ Entwicklung.

Es scheint mir, dass ich aus all den furchtbar disparaten Ressourcen zum Debuggen von PHP-Dateien unter PDT schnell herausfinden konnte, dass die Dateien unter Apache debuggt werden müssen und somit nach htdocs . Gibt es eine lokale Debugging-Option, die keine Bereitstellung oder einen PHP-Server erfordert, und wie komme ich näher an die Verwendung dieser Art von Debugger?

    
ProfK 04.12.2011, 17:01
quelle

4 Antworten

1
  

Es scheint mir [...] dass die Dateien unter Apache debuggt werden müssen und somit nach htdocs kopiert werden müssen.

Nein, Sie können tun, was ich (und wahrscheinlich Tausende anderer Entwickler, wie die anderen Antworten anzeigen) tun:

Lassen Sie Ihre Entwicklungsdateien in Ihrem Home-Verzeichnis, wo sie hingehören, und konfigurieren Sie Ihren lokalen Webserver so, dass DocumentRoot für a name-basierter virtueller Host ist Ihr Entwicklungsstammverzeichnis (oder ein Unterverzeichnis davon).

Die minimale Apache-Konfiguration würde so aussehen:

%Vor%

Die Zeile

%Vor%

sollte bereits in Ihrer hosts -Datei enthalten sein, daher sollten Sie dort keine Änderungen vornehmen müssen. (Wenn Sie jedoch der Meinung sind, dass Sie einen anderen Aliasnamen für den Hostnamen benötigen, wählen Sie ihn einfach. Ich habe derzeit drei weitere für Testzwecke definiert.)

Das Apache-Handbuch und andere Standard-Apache-Ressourcen sollten immer noch standardmäßig verfügbar sein (hier: http://localhost/manual/ usw.). Zum Beispiel (Ich bin hier auf Debian GNU / Linux, daher kenne ich die genauen XAMPP-Pfade nicht):

%Vor%

(Es sagt so - in Linuxese, natürlich - in meinem Standard /etc/apache2/conf.d/apache2-doc .) Siehe die ausgezeichnete XAMPP Dokumentation für Details.

  

Gibt es eine lokale Debugging-Option, die keine Implementierung oder einen PHP-Server erfordert, und wie komme ich näher an diesen Debugger?

Ich verstehe diese Frage nicht. Es gibt keinen "PHP-Server". Es gibt Zend Server - meinst du das?

Wenn Sie PHP-Skripte für einen Webserver wie Apache debuggen wollen, müssen Sie PHP auf diesem Server ausführen . Im Falle von Apache, entweder als Apache-Modul, als CGI-Handler oder unter FastCGI . Sie brauchen nur einen Server, wenn Sie CLI-PHP-Skripte entwickeln. Das XAMPP-Installationsprogramm sollte dies bereits für Sie eingerichtet haben.

Angenommen, Sie möchten PHP-Skripte debuggen, die auf Apache mit dem PHP-Modul ausgeführt werden sollen (führen Sie ein PHP-Skript mit <?php phpinfo(); aus, um sicher zu sein; ich habe keine aktive PHP-Debugging-Erfahrung mit irgendetwas anderem), Sie können PDT so konfigurieren, dass Remote Debugging mit dem obigen lokalen virtuellen Host verwendet wird. Dazu benötigen Sie auch ein serverseitiges Debug-Modul für PHP, zum Beispiel Xdebug oder Zend Debugger (die Debug-Clients für beide sind in PDT enthalten ). Ich habe vorher Zend Debugger benutzt, aber jetzt benutze ich Xdebug (mit PDT 3.0.0v20110516- ... in Eclipse 3.7.1 ["Indigo" SR1, veröffentlicht im September 2011] ¹) weil es freie Software , mit Debian verpackt und hoch konfigurierbar und fähig, obwohl es auch kostenlos ist.

Dieser Artikel hat mir insbesondere geholfen: PHP Remote Debugging mit Xdebug und Eclipse PDT . Weitere Informationen finden Sie in der Xdebug-Dokumentation (z. B. Unabhängigkeit von Client-IP-Adressen).

Eine Fülle von Informationen zu PDT und Debugging mit PDT finden Sie jedoch auf der PDT-Downloads-Website .

>

Untere Zeile: Wenn Sie in localhost debuggen, müssen Sie Ihren Code nicht implementieren, weil Sie Ihren Code bereits implementiert haben , indem Sie ihn einfach in ihm haben oder unter dem DocumentRoot . Eclipse PDT ist es egal, wo sich der entfernte Code befindet; Es greift nur über einen HTTP-URI auf eine Ressource zu. Wenn das mit http://localhost/ beginnt, sei es so:)

(Das Kopieren der Ressourcen birgt das Risiko von Inkonsistenzen und versehentliches Überschreiben von Apache-Dateien, also tu das nicht .)

¹ Es gibt kein PHP-Paket für Eclipse Indigo, aber Sie können e starten. G. mit Eclipse 3.7.1 Classic und installieren Sie PDT über den Update Manager. Wählen Sie einfach das Repository "Indigo" (oder was auch immer), dann "PHP-Entwicklungstools" unter "Programmiersprachen". Abhängigkeiten sollten automatisch aufgelöst werden. Siehe auch PDT / Installation .

    
PointedEars 13.12.2011, 21:24
quelle
2

Ich weiß nichts über Eclipse, aber ich habe das starke Gefühl, dass Sie einfach mehr als eine Site mit Apache konfigurieren möchten, so dass Sie an einer privaten Kopie Ihres Projekts arbeiten können, während Sie gleichzeitig eine Live-Version hosten Computer.

Ich schlage vor, dass Sie sich das Name-basierte Virtual Host Support Kapitel ansehen im Apache-Handbuch. Sie können lokale Domänennamen in der hosts -Datei Ihres Systems erstellen. Darüber hinaus können Sie verschiedene lokale IP-Adressen (127.0.0.1, 127.0.0.2, 127.0.0.3 ...) oder andere Ports verwenden.

Sie erwähnen auch, dass Sie in der Vergangenheit ASP.NET programmiert haben. Es ist nichts wert, dass PHP in fast allen Webservern, einschließlich IIS, gut läuft. Sie müssen Apache nicht installieren und ich bin mir ziemlich sicher, dass Eclipse sich nicht um den Anbieter Ihres Servers kümmert.

    
Álvaro González 04.12.2011 19:19
quelle
0

Ich erinnere mich nicht, ob Eclipse eine lokale PHP-Debugging-Option hat oder nicht. Aber ich denke Zend Studio (das auf Eclipse PDT basiert) kommt mit seinen eigenen PHP-Binärdateien. Ich habe jedoch nie versucht, sie zu benutzen.

Am besten erstellen Sie einen neuen Arbeitsbereich, den ich hier erklärt habe: Veröffentlichen von PHP-Dateien von Eclipse zu Apache htdocs

Wenn Sie vhosts (virtuelle Hosts) auf Ihrer XAMPP-Installation einrichten müssen, Dies ist ein tolles und leicht verständliches Tutorial .

Wenn Sie Vorschläge zu alternativen IDEs haben möchten, dann würde ich mit Zend Studio gehen ( $ 299) oder Rapid PHP 2011 . Obwohl ich Rapid PHP 2011 noch nie benutzt habe, sieht es etwas vielversprechend aus und hat viele der gleichen Funktionen wie viele populäre IDEs einschließlich Debugging . Beachten Sie, dass es meiner Meinung nach nicht ganz so professionell ist wie Eclipse / Zend (was ich wiederum immer wieder empfehlen kann).

    
Yes Barry 08.12.2011 07:20
quelle
0

Ich ging davon aus, dass die Frage mehr war "kann ich in PDT ein CLI-Skript debuggen". Wenn das der Fall ist, ja, können Sie.

Sie müssen lediglich die PHP.INI-Datei bearbeiten, die Ihre CLI verwendet, und sicherstellen, dass XDebug für die CLI aktiviert ist und dass xdebug.remote_autostart auf 1 gesetzt ist. Es ist durchaus möglich, dass das CLI PHP a andere INI-Datei von Apache, also stellen Sie sicher, dass Sie die richtige verwenden.

Schließlich, in PDT klicken Sie auf "Debug-Projekt" und debuggen Sie es als Web-Skript, auch wenn es nicht ist. Das Wichtigste ist, dass Sie PDT im Wesentlichen sagen, dass Sie zuhören sollen. Sobald dies erledigt ist, sollten Sie in der Lage sein, das Skript von der CLI aus auszuführen und PDT zum geeigneten Zeitpunkt einleiten zu lassen. Die xdebug.remote_autostart ist jedoch der Schlüssel.

    
Narcissus 13.12.2011 22:27
quelle

Tags und Links