DEV3 Tutorial – TYPO3 IDE mit Eclipse

Copyright © 2010 by RealPowerWork
DEV3 Tutorial – TYPO3 IDE mit Eclipse
Aptana Installation über Update Manager
DEV3 Installation über Update Manager
Fehler „DEV3“ nach Installation nicht unter „New“ in der Auswahlliste
Installation von Subclipse (für SVN)
Lokales TYPO3 Script Bearbeiten
Fehler „Snippet View“ erzeugt „NullPointer Exeption“
Subversion auf SLES 10.3 Linux Server
Installation und Konfiguration
eDirectory (für eine eigenständige Konfiguration)
Fügen Sie das SLE-10-SDK-SP3 als Installationsquelle hinzu
Installieren Sie Apache2 und Subversion-Server-Software
Konfigurieren Subversion mit SVN (svnserve)
Konfigurieren Subversion WebDAV (über Apache2) mit Passwortdatei
Konfigurieren Subversion WebDAV (über Apache2) und LDAP
Erstellen des „Parent“-Repository für Subversion
Aktivieren von „https“ für Apache2 (Optional)
Aktivieren „ldaps“ sicheren LDAP-Authentifizierung (optional)
Fehler beim Starten vom Apache2 Server beim Modul „mod_dav_svn“
Kurzzusammenfassung der Subversion Installation
Check-In (Import) von Projekte
Check-Out von Projekte (Arbeitskopie –WC)
Fehler bei „svn://“ Verbindung „..der Zielcomputer hat die Verbindung verweigert.“
TYPO3 auf Windows (Lokal) mit SVN und Xdebug
Lokales Arbeitskopie vom SVN-Repository erstellen
Einstellen des Datenbank Zugriffs
Installation von ”Junction” (symbolische Link)
Installation von ImageMagick unter Windows
Einbindung von ImageMagick in XAMPP
Fehler beim Zugriff auf die TYPO3 Website mit http://localhost/rpw/index.php
Fehler nach Einbindung von ImageMagick in „php.ini“ beim Start vom Apache2
ImageMagick wird im TYPO3 Install Tool nicht erkannt
Der ImageMagick Pfad kann im TYPO3 Install Tool nicht gespeichert werden
Fehler die TYPO3 Website öffnet sich sehr langsam und ohne Styles(CSS)
Aktivieren von Xdebug in XAMPP
Firefox mit Xdebug Konfiguration
Installation vom Xdebug auf SUSE Server
Fehler Webseitenanzeige langsam oder hängt wenn „XDebug“ geladen wurde
Eclipse Projekt für Debugging Einrichten
Einrichtung von Xdebug für XAMPP
Einrichtung von Xdebug für Remote Debugging
Erste Debugging Sitzung in Eclipse starten
Starten von TYPO3 Debugging mit XAMPP und Firefox
Fehler bei Debugging Sitzung kommt „Launching: waiting for XDebug session“
Fehler bei starten einer Debugging Sitzung kommt „Web Lunch Already Running“
Fehler in Debugging „Unexpected termination of script, debugging ended.“
Fehler nach starten einer Debugging Sitzung wird im Firefox folgendes angezeigt
Fehler nach starten einer Debugging Sitzung wird im Firefox folgendes angezeigt
Starten von TYPO3 Remote Debugging
Fehler bei XDebug wenn „Run“-„Debug As“ – „PHP Web Page“ gestartet wird
Fehler „Could not open the editor: Text editor does not have document provider.“
Fehlermeldung wenn Zend Remote Debugger eingerichtet wird
Allgemeines zum Remote Debugger
Warum einen IDE (Integrated Developer Environment) für TYPO3 verwenden?
Um TYPO3 Extension oder Scripts extern zu entwickeln und mit Syntax Highlighting, Code-Vervollständigung, Syntax Prüfung und Debugging zu arbeiten. Um Versionen von Programmcodes zu verwalten oder auch in Teams über SVN zu nutzen. Zusätzlich stehen im IDE eine Vielzahl von Funktionen zur Code Formatierung über Plugins zur Verfügung.
Siehe Video http://video.google.com/videoplay?docid=1416991103619969315#
Als Voraussetzung für übrige Anleitung muss Eclipse for PHP Developers (Galileo) installiert sein. Eclipse ist plattformunabhängig, funktioniert also für Windows, MAC und Linux. Eclipse ist ein IDE (Integrated Developer Environment) das auch für andere Programmiersprachen zur Verfügung steht.
Ich möchte hier nur kurz erwähnen das es auch noch easyEclipse für PHP gibt, mit diesem Programm kann eine einfache Einbindung von Eclipse PHP mit SVN und FTP erfolgen. Dieses Programm ist leichter zu Konfigurieren, aber der Funktionsumfang ist kleiner als bei der vollständigen Version von Eclipse.
Bei easyEclipse muss Aptana nicht mehr installiert werden, bei „Eclipse for PHP“ müssen wir aber noch das Aptana Studio (siehe Install Studio Plugin) per Software Updater von Eclipse installieren.
Für die TYPO3 Skripte wird danach das DEV3 Plugin installiert die Komponenten welche für TYPO3 und FLOW3 notwendig sind.
Wenn Sie mit SVN arbeiten wollen müssen Sie noch ein SVN Repository für Ihre Dateien einrichten.
Hier wird muss dann noch unterschieden werden, ob es sich um eine Einzelplatz Entwicklerstation handelt auf welcher auch alle Repositories zur Verfügung gestellt werden, oder um ein Repository das auf einem externen Server liegt und von einem Team genutzt wird.
Danach benötigen Sie den Plugin Subclipse um SVN in Eclipse zu benutzen.
Zur Verwaltung von SVN Repositories können Sie auch noch Tortouse auf dem Computer installieren.
Für das Debugging von Skripten stehen auch wieder mehrere Möglichkeiten zur Verfügung. Es können alle Komponenten die für den Betrieb von TYPO3 notwendig sind lokal auf der Entwicklerstation installiert werden. D.h. Apache, PHP und SQL werden lokal auf dieser Arbeitsstation installiert dies geschieht meist durch das Programmpaket XAMPP. Oder das Debugging wird über eine Netzwerkverbindung auf einen externen Server, auf welchen die Server Komponenten und die Debugging Tools installiert sind, durchgeführt.
Es gibt dafür zwei Arten von Debugging Servern „XDebug“ oder „Zend Debugger“. Wobei das Produkt „Zend Studio for Eclipse“ als Testversion zur Verfügung steht und ansonsten als kommerzielles Produkt angeboten wird. Beide Debugging Server können sowohl bei einer lokalen Installation oder einer Serverinstallation der Komponenten verwendet werden.
Für Flasher und Flexer sind diese Tool unverzichtbar:
FDT - Flash Development Tool - http://fdt.powerflasher.com/update/
FactoryIDE - Rich Internet Applications - http://www.idefactory.com/update
und natürlich der FlexBuilder als Plugin für Eclipse - http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email
Je nach Anforderung können auch noch andere Plugins in Eclipse hinzugefügt werden, um die Entwicklung oder das Debugging einzelner Module zu vereinfachen.
1. Installing Non-Aptana Plugins on Eclipse 3.5 (Galileo).
2. Gehen Sie zu “Help”
-> “Install New Software...“
3. In der
"Work with:" Text Box, geben Sie die gewünschte Update Website ein:
http://download.aptana.org/tools/studio/plugin/install/studio
Download als ZIP Datei hier für mehrfach Installationen möglich:
http://download.aptana.org/tools/studio/plugin/install/studio/zip
4. Click “Add...”
5. Geben Sie als Namen für die Update Website z.B. „Aptana Studio
Plugin“ ein.
6. Klicken Sie auf “OK”.
7. Selektieren Sie die "Aptana Studio" Checkbox (siehe
Bild).

8. Klicken Sie dann auf den “Next” Button.
9. Klicken Sie nach Anzeige des Elements nochmals auf “Next”.
10. Bestätigen Sie die Lizenzvereinbarung “I accept the term of the License
Agreements”.
11. Klicken Sie auf den
“Finish” Button.
12. Währen der
Installation kann dann noch eine „Security Warnung“ kommen. Diese wird mit „Ok“
bestätigt.

13. Am Schluss der
Installation kommt noch die Meldung das Eclipse neu gestartet werden soll.

1. Nachdem Sie vorherige Schritte durchgeführt haben sollte Eclipse für das DEV3 TYPO3 Plugin gerüstet sein. Der DEV3 Plugin installiert die Komponenten für TYPO3 und FLOW3.
2. Gehen Sie wieder
auf „Help“-„Install New Software…“.
3. Danach fügen Sie
als Quelle http://www.dev3.org/update
ein.
4. Klicken Sie auf „Add“
und geben Sie als Namen „DEV3 Plugin“ ein.
5. Anschließend wählen
Sie das Plugin aus und klicken dann auf „Next“.

6.
Bestätigen Sie die Lizenzvereinbarung “I accept the
term of the License Agreements”.
7. Klicken Sie auf den “Finish” Button.
8. Bestätigen Sie wieder die „Security Warning“ mit „OK“.
9. Wenn
alles geklappt hat sehen Sie unter „File“-„New“-„Other…“ folgenden Eintrag.

Nach der Installation von DEV3 erscheint dies nicht in der Auswahlliste die bei klicken auf „New“ angezeigt wird. Die Ursache diesen Fehler konnte nicht festgestellt werden.
Behebung:
In einer komplett neuen Umgebung Eclipse funktionierte die Installation nach dieser Anleitung ohne Probleme. Ich vermute Konflikte welche durch die Installation vorheriger Extension verursacht wurden.
Wenn Sie Eclipse in Verbindung mit SVN verwenden wollen sollten Sie noch das Plugin „Subclipse“ installieren. Die Installation erfolgt wieder so wie bei den vorhergehenden Modulen.
Update Site:
http://subclipse.tigris.org/update_1.6.x
Download einer ZIP Datei für mehrfach Installationen:
http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240
Wählen Sie die angezeigten Pakte „CoreSVNKit Library“, „Optional JNA Library“ und „Subclipse“ aus.
Klicken Sie danach auf „Next“ und dann nochmals auf „Next“.

Bestätigen Sie die Lizenzvereinbarung “I accept the term of the License Agreements” und klicken Sie auf “Finish”.
Wenn alles richtig gelaufen ist sehen Sie unter „File“-„New“-„Other…“ folgenden zusätzlichen Eintrag.
![]()
1. Gehen Sie
„New“ und wählen sie als neues Projekt „DEV3“-„FLOW3 Project“

2. Geben Sie
den Key beginnend mit Nummern (nicht wie im Bild) und den Namen für das neue
Projekt ein. Im Feld Description können Sie eine Beschreibung für das Projekt
eingeben. Wählen Sie ggf. unter Locales zusätzliche Sprachen aus und unter
„Configure Defaults“ können Sie den Autornamen, Email etc. angeben. Durch
klicken auf „Finish“ wird das Projekt erstellt.

3. Sie
sollten jetzt im PHP Explorer Fenster folgendes angezeigt bekommen.

4. Erstellen
Sie jetzt eine neuen Folder für einen FLOW3 Aspect mit dem Namen „Aspect“.

5. Nachdem
Sie den Folder Namen eingegeben haben klicken sie auf „Finish“.

6. Klicken
Sie dann mit der rechten Maustaste auf „Aspect“. Wählen Sie „New“-„Other…“ und
dann „FLOW3 Aspect“ aus.

7. Geben Sie
einen Namen den Aspect und eine Description ein. Klicken Sie dann auf „Add“ um
einen Pointcut hinzuzufügen.

8. Geben Sie
einen Namen für den Pointcut ein und klicken Sie auf OK.

9. Klicken Sie dann
auf „Finish“ um den neuen Aspect zu erstellen.
10. Sie sehen jetzt folgende
Anzeige auf den Bildschirm und können jetzt in diesem Editor Ihren Code
einfügen.

Diese Schritte können Sie für den kompletten Code vornehmen welchen Sie anlegen wollen.
Lokales TYPO3 Script Bearbeiten
Sie können mit diesem Plugin auch normalen TYPO3 Skripte
bearbeiten (Endung .ts2) bearbeiten.

Das Script wurde dann als externe Datei mit dem Namen „demo.ts“ unter
„fileadmin/typoscript“ gespeichert.
Diese Datei wird im TYPO3 template Setup in mein root template
folgendermassen includiert:
<INCLUDE_TYPOSCRIPT:
source="FILE: fileadmin/typoscript/demo.ts">
Bekannter BUG #3265
In der SLES 10 Version ist Subversion standardmäßig nicht als RPM Paket enthalten. D.h. Sie müssen sich von der SLES 10 SDK DVD installieren. Die komplette Installation wir nachfolgend erklärt.
· SUSE Linux Enterprise Server 10 SP3 i386 Architektur
· SUSE Linux Enterprise Server 10 Software Development Kit SP3 (sle-10-sdk-sp3)
· eDirectory 8.8.2 Installations Dateien (Archive oder ISO)
· Eine Installationsquelle für SUSE Linux Enterprise Server 10 Software Development Kit SP3
Installation von SUSE Linux Enterprise SP3 i386 von CD-Rom oder DVD. Wählen Sie Standardinstallation (keine zusätzlichen Schematas).
Hinweis: Sie können sich auch gegen eine bestehende eDirectory Instanz „über das Netzwerk authentifizieren", wenn Sie eine eDirectory in Ihrer Umgebung haben. Wenn dies der Fall ist, können Sie diesen Installationsabschnitt überspringen.
1. Download von eDirectory 8.8.5 32-bit Non-OES Linux auf ISO http://download.novell.com
2. Wechseln Sie auf „root“ mit "su -" ('su -' in der Konsole, root-Passwort eingeben).
3. Mounten Sie die eDirectory-Installation. ISO als „/media/cdrom“
Befehl für eine ISO Dateimount: "mount -t iso9660 -o loop eDir_885.iso
/media/cdrom".
4. Wechseln Sie mit „cd /media/cdrom/setup“ in das Verzeichnis (dies kann auch "/media/cdrom /eDirectory/setup", je nach eDirectory-Version sein).
5. Starten Sie „. /nds-install".
6. Wählen Sie Optionen „1“ für „Novell eDirectory Server“ und „2“ für die „Novell eDirectory Administration Utilities“ für die vollständige Installation vom eDirectory. Zuerst wählen Sie also die Option „1“ aus.
7. Exportieren Sie die Environment Variablen vom eDirectory Server mit
„cd /opt/novell/eDirectory/bin“
„. ./ndspath“ (zwischen den ersten und den zweiten Punkt einen Leerschritt
einfügen).
8. Starten Sie nochmals vom Verzeichnis „/media/cdrom/setup“ den „./nds-install“.
9. Wählen Sie jetzt als Installationsoption „2“ für „Novell
eDirectory Administration Utilities“ aus.
eDirectory-Installation ist nun abgeschlossen. Sie können jetzt Ihren eDirectory-Tree mit dem eDirectory-Dienstprogramm "ndsconfig" überprüfen.
1. Nun konfigurieren Sie Ihren eDirectory-Baum von der Kommandozeile aus
mit „ndsconfig“, d.h.
"ndsconfig new -t mytree -a cn=admin.o=novell -n o=novell -S myserver -i
-e -D /var/opt/novell/instance0 -d /var/opt/novell/instance0/data/dib -w password
-config-file /var/opt/novell/nds0.conf“
Die „-i“ Option ignoriert doppelte Baum-Lookup, "-e“ ermöglicht LDAP
Klartext-Passwort.
Beispiel: „ndsconfig new -t rpw -a cn=admin.o=realpowerwork -n o=realpowerwork
-S sles10 -i -e -D /var/opt/novell/instance0 -d
/var/opt/novell/instance0/data/dib -w password -config-file /var/opt/novell/nds0.conf“
2. Sobald eDirectory Konfiguration abgeschlossen ist, können Sie überprüfen der der „ndsd“-Dämon läuft mit "ndsstat".
1. Download vom SLES 10 SDK SP3 (DVD1) von Novell Download Website: http://download.novell.com/Download?buildid=eRAdQttrkeA~
2. Speichern Sie den Download der DVD1 auf Ihrem lokalen System.
3. Starten Sie „yast2“ und fügen Sie die das „DVD1.ISO“ als Installationsquelle hinzu. Gehen Sie dazu auf „Software“-„Installationsquelle wechseln“ und klicken Sie auf „Hinzufügen“ von einem „Lokales Verzeichnis“.
Installieren Sie die erforderliche Software:
1. Führen Sie "rug in apache2 apache2-doc neon subversion-server".
2. Installation abschließen.
3. Erstellen Sie eine Subversion Gruppe- und einen –Benutzer:
„groupadd svn-r; useradd-r-g svn -d /srv/svn-s /bin/false svn“.
1. Erstellen Sie das Repository Verzeichnis:
„makedir -p /srv/svn/repos“
2. Wechseln Sie in das Verzeichnis und erstellen Sie ein Projekt:
„cd /srv/svn/repos“
„svnadmin create projektname
3. Starten Sie den „svnserve“ mit folgenden Parametern:
„svnserve –d –r /srv/svn/“
Mit der „-r“ Option wird festgelegt, welches Verzeichnis vom „svnserve“ bei
Anfragen als Wurzelverzeichnis (engl. root) verwendet wird. Ein Client muss nun
in seiner URL nur noch den Pfad relativ zum neuen Wurzelverzeichnis angeben,
was die URL erheblich verkürzt und die Verzeichnisstruktur etwas verschleiert.
4. Aktivieren in der Datei „svnserve.conf“ aus dem Verzeichnis „conf“ die Passwortdatei:
|
… [general] password-db = passwd realm = Anmeldedomäne # Anonyme Benutzer können nur lesend zugreifen anon-access = read
# Authentifizierte Benutzer können sowohl lesen als auch schreiben auth-access = write .. |
5. Erstellen Sie einen neuen Login in der Passwortdatei „passwd“ im Verzeichnis „conf“:
|
… user = password … |
6. Jetzt sollten Sie über einen „svn“ Client auf das Repository zugreifen
können:
„svn://<servername>/repos/projektname“
1. Installieren Sie die benötigten „apache2“-Module über die
Befehlszeile:
„a2enmod dav“
„a2enmod dav_svn“
2. Erstellen Sie das Repository Verzeichnis:
„makedir -p /srv/svn/repos“
„makedir -p /srv/svn/user_access“
3. Wechseln Sie in das Verzeichnis und erstellen Sie ein Projekt:
„cd /srv/svn/repos“
„svnadmin create projektname“
4. Vergeben Sie die Berechtigung auf das Verzeichnis:
„chown -R wwwrun:www projektname/{dav,db,locks}“
5. Starten Sei den Apache2 neu „rcapache2 restart“
6. Erstellen Sie die Passwortdatei:
„touch /srv/svn/user_access/projektname_passwdfile“
7. Vergeben Sie der Berechtigung darauf:
„chmod 640 /srv/svn/user_access/projektname_passwdfile“
„chown root:www /srv/svn/user_access/projektname_passwdfile“
8. Erstellen Sie einen Loginnamen und Passwort:
„htpasswd2 /srv/svn/user_access/projektname_passwdfile username“
9. Anpassung der „subversion.conf“ in „/etc/apache2/conf.d/“ durchführen:
|
<IfModule mod_dav_svn.c>
<Location /repos/projektname> DAV svn SVNPath /srv/svn/repos/projektname
# Limit read and write permission to list of valid users. <Limit GET PROPFIND OPTIONS REPORT> # Require SSL connection for password protection. SSLRequireSSL
AuthType Basic AuthName "Authorization for projektname" AuthUserFile /srv/svn/user_access/projektname_passwdfile Require valid-user </Limit> </Location>
</IfModule> |
1. Installieren Sie die benötigten „apache2“-Module über die Befehlszeile:
„ a2enmod dav“
„ a2enmod dav_svn“
„ a2enmod ldap“
„ a2enmod authnz_ldap“
2. Jedes Repository benötigt einen eigenen Eintrag in der „/etc/apache2/conf.d/subversion.conf“
Datei. Für Benutzerfreundlichkeit, etc., werden wir ein „Parent“- Repository konfigurieren,
und dann ein "Child" unter dem übergeordneten Projekten für das
Designer-Projekte erstellen.
3. Mit einem Texteditor (vi in diesem Fall), laufen: (als root) "vi
/etc/apache2/conf.d/subversion.conf"
4. Die „subversion.conf“ sollte wie folgt lauten:
|
# Beispielkonfiguration für ein Subversion-Repository # /usr/share/doc/packages/subversion vollständige Dokumentation # <IfModule Mod_dav_svn.c> <Location /repos> DAV svn SVNParentPath /srv/svn/repos SVNListParentPath on
# # Limitiere die Liste gültiger Benutzer mit Schreibrechten. <LimitExcept GET PROPFIND OPTIONS REPORT> # # Require SSL-Verbindung für den Passwortschutz. # # SSLRequireSSL # AuthBasicProvider ldap AuthType Basic AuthName "LDAP Authorization Realm" AuthLDAPURL ldap://127.0.0.1:389/OU=Benutzer,O=firma,DC=Daten required ldap-attribute objectClass=user </LimitExcept> </Location> </IfModule>
|
In diesem Fall wird die Subversion Lokation ist /srv/svn/repos, wird der LDAP-Server 127.0.0.1:389 (Klartext-LDAP), und die Benutzer sind im Container ou=users, o=firma, DC=Daten
Ohne die SVNListParentPath Richtlinie, können Sie nicht auf die Repositories "Index-Seite zu gehen - Sie erhalten einen "Access Forbidden" Antwort.
Erstellen und Konfigurieren des Subversion-Repository:
1. Erstellen Sie das Verzeichnis für das Repository „mkdir -p /srv/svn/repos“.
2. Starten Sie Apache2 neu mit „rcapache2 restart“.
3. Einrichten einer Projekt-Repository mit dem Namen Ihrer Wahl z.B. „mydesignerprojects“:
„svnadmin create /srv/svn/repos/mydesignerprojects"
„chown -R wwwrun: www /srv/svn/repos/mydesignerprojects/“
1. Starten Sie „gensslcert“ um eine neues gültiges Zertifikat zu erzeugen.
2. Kopieren Sie eine Apache2 Host Konfiguration für SSL:
„cp /etc/apache2/vhosts.d/ssl-vhost.template /etc/apache2/vhosts.d/ssl-vhost.conf“.
3. Passen Sie die Konfigurationsdatei Ihren Bedürfnissen an.
4. Den Apache2 neustarten mit: „rcapache2 restart -DSSL“
5. Möglicherweise müssen Sie das „HTTPS“-Zertifikat-Dateien auf Ihre Entwickler-Clients kopieren, um zusätzliche Abfragen zu vermeiden. (Es gibt eine Option, um das Zertifikat Informationen über die ersten Check-in, check-out via https speichern).
Siehe http://httpd.apache.org/docs/2.2/mod/mod_ldap.html
|
httpd2: Syntax error on line 113 of /etc/apache2/httpd.conf: Syntax error on line 30 of /etc/apache2/sysconfig.d/loadmodule.conf: Cannot load /usr/lib/apache2/mod_dav_svn.so into server: /usr/lib/apache2/mod_dav_svn.so: undefined symbol: dav_xml_get_cdata |
Ursache:
Kontrollieren Sie ob alle notwendigen Libraries im Verzeichnis „/usr/lib/apache2/“ vorhanden sind:
„mod_authnz_ldap.so“, „mod_authz_svn.so“ und „mod_dav.so“
Behebung:
Die Reihenfolge der „loadmodule.conf“ ist falsch. Dies wird aus der Datei „apache2“ aus dem Verzeichnis „/etc/sysconfig/“ festgelegt. Ändern Sie die Reihenfolge in der Datei „apache2“ bei der angeführten Option ab (es werden nur die letzen Module angeführt):
|
APACHE_MODULES="… ldap dav dav_ldap authnz_ldap" |
1. Subversion über installieren. Je nach System mit YaST, RPM, etc.
2. Gruppe „svn“ und Benutzer „svn“ anlegen.
(Alle Systembenutzer die das gemeinsame SVN Verzeichnis nutzen sollen, müssen
Sie in die Gruppe „svn“ hinzufügen.)
3. SVN Repository anlegen "svnadmin create ..."
4. Rechte des Repository anpassen. Bei „Svnserve“ Zugriff muss die Gruppe immer "svn" sein, bei WebDAV Zugriff „www“.
5. Importieren Sie Ihre Dateine oder Verzeichnisse in das Repository „svn import…“
6. Auf der Client (Entwickler-) Station „Tortoise“ installieren.
7. Check-Out auf den Clients durchführen.
Download
„Tortoise SVN“ (1.6.7) von http://tortoisesvn.net/downloads
Installiere vom „Tortoise“ (wenn nicht schon vorhanden) nach dem Download auf Ihren Computer (danach Neustart).
Kommandozeilen-Client für Windows:
http://www.collab.net/downloads/subversion/
Konsolenbefehl zum Import von Projekten in das Repository (lokal auf dem Server):
„svn import myprojekt file:///srv/svn/repos/projektname“
In Tortoise klicken Sie mit der rechten Maustaste das gewünschte Verzeichnis in welchen Sie das Repository erstellen wollen, und wählen Sie „TortoisSVN“-„Import…“
Konsolenbefehl zum Check-Out eines Projektes aus dem Repository in eine lokale Arbeitskopie (WC):
„svn checkout file:///srv/svn/repos/projektname“
In Tortoise klicken Sie mit der rechten Maustaste das gewünschte Verzeichnis in welchen Sie die Arbeitskopie (WC) erstellen wollen, und wählen Sie „SVN Checkout…“
Konsolenbefehl zum Commit von Dateien oder Verzeichnisse aus der lokalen Arbeitskopie in das Repository:
„svn commit myfile file:///srv/svn/repos/projektname“
In Tortoise klicken Sie mit der rechten Maustaste die gewünschte Arbeitskopie Datei oder Verzeichnis welches Sie in das Repository übertragene möchten, und wählen Sie „SVN Commit…“
Konsolenbefehl zum Update der lokalen Arbeitskopie aus dem Repository:
„svn update file:///srv/svn/repos/projektname“
In Tortoise klicken Sie mit der rechten Maustaste die gewünschte Arbeitskopie Datei oder Verzeichnis welches Sie vom Repository updaten wollen, und wählen Sie „SVN Update…“
Kontrollieren Sie den URL für die Verbindung, eventuell müssen Sie den kompletten Pfad von Root abwärts angeben.
Voraussetzungen: Ein Remote-SVN-Repository mit allen Ihren
TYPO3-Quellen.
Download
XAMPP (1.7.3) auf http://www.apachefriends.org/en/xampp-windows.html
Wenn
Sei die EXE-Datei von XAMPP downgeladen haben, klicken Sie auf die Datei um
diese auszuführen. Als „Destination Folder“ geben Sie „C:\“ ein und klicken Sie
dann auf „Install“.

Zuerst werden alle Dateien aus dem Paket in das Verzeichnis entpackt.

Danach startet die Konfiguration von XAMPP in einzelnen Konsolen Fenstern.

Bestätigen Sie die Anlage eines Shortcut Icons auf dem Desktop des Computers mit <Enter>.

Bestätigen Sie auch die Anpassung der Konfiguration mit <Enter>.

Bestätigen Sie das Sie keine Laufwerksbuchstabe brauchen mit <Enter>.

Nach einem nochmaligen <Enter> ist die Installation abgeschlossen.

Es erfolgt die Mitteilung dass als Zeitzone „Europe/Paris“ in „php.ini“ und in die „my.ini“ eingetragen wurde. Weiter mit <Enter>.

Wenn Sie IP6 nicht benötigen schalten Sie diese mit „4“ und <Enter> ab.
Geben Sie danach „1“ und <Enter> ein damit das XAMPP Control Panel angezeigt wird.

Sie können durch anklicken auf „Svc“ vor dem jeweiligen Modul festlegen ob dies als Windows Service installiert werden soll. Wenn Sie nur auf „Start“ bei „Apache“ und „MySql“ klicken werden nur diese beiden Module gestartet (ohne das Windows Services installiert werden).
Sie
könne das letzte Konsolen Konfigurationsfenster nochmals durch Ausführen der „setup_xampp.bat“
starten, die sich im Verzeichnis C:\xampp befindet.
Für späteren
Betrieb von TYPO3 müssen zumindest die Module „Apache“ und „MySql“ gestartet
sein.
WICHTIG! Um zu überprüfen ob XAMPP funktioniert, öffnen Sie einen Browser wie
Firefox und geben http://localhost/xampp/ ein, wenn die Installation funktioniert hat sollten Sie die
XAMPP-Willkommen-Seite sehen sein.
Normalerweise erstell man von einem SVN-Repository eine Subversion-Arbeitskopie (WC[1]), in welcher die Änderungen durchgeführt werden. Diese Änderungen können dann wieder an das Repository zurückgesendet. Außerdem können neue Änderungen welche in der Zwischenzeit im Repository durchgeführt wurden in die lokale Arbeitskopie übernommen werden.
Zur Arbeit mit TYPO3 benötigen wir ein komplettes Source Verzeichnis z.B. „typo3_src-4.3.2“ und ein TYPO3 Projektverzeichnis (oder „dummy“) mit welchen wir arbeiten wollen.
Rechtsklick auf den Desktop, aus dem Menü wählen Sie den „SVN Checkout…“ und ändern Sie diese Werte ab:
·
Geben Sie bei „URL of Repository“ Ihre gewünschte
Online Repository ein z.B.:
„https://<servername>/repos/rpw/“ oder
„svn://<servername>/repos/rpw“
· Bei “Checkout directory” geben Sie Ihren lokalen Pfad für das Repository ein z.B.: “C:\xampp\htdocs”
Wenn der Check-Out endet, kann der Anwender alle Quellcode Dateien
und Verzeichnisse im Arbeitsbereich in „C:\xampp\htdocs\“ finden.
Das ganze sieht dann so aus:

Es beginnt jetzt der Download
der Dateien vom Repository, dies kann je nach Größe des Repository einige Zeit
in Anspruch nehmen.

Wenn der Check-Out endet befinden sich alle Repository Dateien in Ihrem lokalen Arbeitsverzeichnis.
Als Datenbankname für die TYPO3 Datenbank wird immer “rpw” verwendet.
Im Verzeichnis „typo3conf“ gibt es eine Datei namens „localconf.php“, öffnen Sie diese und führen Sie folgende Änderungen durch:
|
… $typo_db_username = ‘root’; $typo_db_password = ‘’; $typo_db_host = ‘localhost’; $typo_db = ‘rpw‘; // Datenbankname der TYPO3 Datenbank … |
„Junction“ ist ein Tool mit welchen es möglich ist unter Windows symbolischer Link auf Dateien vorzunehmen.
Es ist verfügbar für http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx
Es handelt sich dabei um eine einfache EXE-Datei welche immer dann ausgeführt wird, wenn symbolische Links für TYPO3 gebraucht werden. Kopieren Sie diese in das „C:\Windows\“ oder „C:\Windows\System32\“ Verzeichnis.
Als Arbeitsverzeichnis wurde vorher „C:\xampp\htdocs\rpw“ angelegt und dieses Verzeichnis vom Repository mit einem Check-Out gefüllt.
Aus dem Verzeichnis „C:\xampp\htdocs\rpw“ löschen Sie vorher die Verzeichnisse (oder Dateien) “t3lib”, „typo3“ und „typo3_src“ wenn diese vorhanden sind. Löschen Sie auch die Datei „index.php“ aus dem Verzeichnis „C:\xampp\htdocs\rpw“.
Nach dem Herunterladen des Repository müssen folgende symbolische Links erstellt werden die auf das TYPO3 Arbeitsverzeichnis verweisen:
|
junction -s c:\xampp\htdocs\rpw\typo3_src\ c:\xampp\htdocs\rpw\typo3_src-4.3.2\ junction -s c:\xampp\htdocs\rpw\t3lib\ c:\xampp\htdocs\rpw\typo3_src\t3lib junction -s c:\xampp\htdocs\rpw\typo3\ c:\xampp\htdocs\rpw\typo3_src\typo3 junction -s c:\xampp\htdocs\rpw\index.php c:\xampp\htdocs\rpw\typo3_src\index.php |
Die Struktur einer Produktionsdatenbank von TYPO3 kann zu umfangreich für eine lokale Installation sein. Wenn dies der Fall ist, so sollte nur ein Dump der Produktions-Datenbank mit performanten CREATE-Anweisung erstelle werden, ohne alle INSERT-Anweisungen, welche zu Festplattenperformance Problemen führen könnten, weil diese Abfragen zu langsam wären.
Wenn die Produktionsdatenbank von TYPO3 nicht sehr groß ist, kann diese auch komplett in die XAMPP Umgebung kopiert werden:
„mysqldump -u root -p rpw > /tmp/typo3-database.sql“
Kopieren dann die Datenbankdatei auf „c:\xampp\mysql\data“.
Die erstellten Dateien werden im Subversion-Repository gespeichert. Um die unten angeführten Befehle in einer Batch-Datei auszuführen brauchen wir eine XAMPP Installation mit einem Arbeitsverzeichnis und der MySQL-Server muss geladen sein.
Starten Sie XAMPP aus dem Verzeichnis „C:\xampp“ mit der Datei „xampp_start.exe“.
Mit der Datei „xampp-control.exe“ wird das XAMPP Control Panel geöffnet, in welchen Sie den Status von XAMPP überwachen können. Außerdem können Sie hier noch spezielle Konfigurationen vornehmen.
Die Datei wird die folgenden Befehle:
|
C: CD C:\xampp\mysql\bin mysqladmin -u root create TYPO3-Datenbank
mysql-u root TYPO3-Datenbank < C:\temp\typo3-datenbank.sql |
(Hinweis: Alle SQL-Dateien sind im Ordner „C:\xampp\mysql\data\“)
Dank dieser Datei wird die lokale Kopie der Datenbank für die Entwicklung zur Verfügung gestellt.
Sie können jetzt über den URL http://localhost/rpw oder auch über den URL http://<hostname>/rpw“ auf die TYPO3 Website zugreifen.
Downladen Sie von der Website die „Windows Binary Library“ als DLL Datei meine Version war die „ImageMagick-6.6.1-1-Q16-windows-dll.exe“:
http://www.imagemagick.org/script/binary-releases.php
Führen Sie die Datei aus und installieren Sie damit ImageMagick unter Programme:

Übernehmen Sie die Standard Task Einstellungen mit „Next“.

Durch klicken auf „Install“ beginnt die Installation.

Danach den Rechner neustarten, damit die Pfade geladen werden.
Bei mir gab es das Problem, dass die Datei „php_imagick.dll“ nicht im Verzeichnis „C:\xampp\php\ext\“ vorhanden war. Daher brachte auch nicht wenn in der „php.ini“ den Eintrag „Extension=php_imagick.dll“ hinzugefügt hätte.
1.
Daher musste ich manuell eine
Binary von dieser Website laden:
http://www.sk89q.com/2010/03/vc6-windows-binaries-for-imagick-2-3-0/
2.
Diese DLL Datei kopieren Sie
dann in das Verzeichnis „C:\xampp\php\ext\“.
3.
In der Datei „php.ini“ im
Verzeichnis „C:\xampp\php\“ fügen Sie folgende Zeile ein:
„extension=php_imagick.dll“.
4.
Starten Sie den Apache2 neu.
Kontrollieren Sie unter „phpinfo()“ ob ImageMagick vorhanden ist.

Beim Zugriff auf die Datenbank erscheint der
Fehler:
„Database Error
The current username, password or host was not accepted when the connection to the database was attempted to be established!“
Behebung:
Kontrollieren sie nochmals die Einstellungen in der Datei „localconf.php“ in dem Verzeichnis „C:\xampp\htdocs\rpw“. Berichtigen Sie ggf. den „$typo_db_username“ das „$typo_db_password“ und den „$typo_db“ Eintarg in dieser Datei und versuchen Sie nochmals den Zugriff. Wenn Sie XAMPP Standardmäßig installiert haben ist das Datenbankpasswort („$typo_db_password“) immer leer.
Nachdem in die Datei „php.ini“ die Zeile „extension=php_imagick_ts.dll“ eingebunden wurde kommt beim Neustart vom Apache2 folgende Fehlermeldung.

Ursache:
Ich
hatte die Binary von dieser Website geladen:
http://valokuva.org/?page_id=50
Die
Build waren für PHP 5.3 mit VC9 kompiliert http://valokuva.org/magick/
Die „ts“ Versionen sind „Tread Save“ Versionen, die „nts“ sind „Non-Thread
Save“.
Diese DLL Datei hatte ich in das Verzeichnis „C:\xampp\php\ext\“ kopiert und
in deie Datei „php.ini“ im Verzeichnis „C:\xampp\php\“ hatte ich folgende Zeile eingefügt „extension=php_imagick_ts.dll“.
Behebung:
Sie benötigen einen DLL, welche mit derselben Visual-C (VC)Version kompiliert worden ist, wie das verwendete PHP. Die PHP wurde hier mit VC6 kompiliert, daher muss auch die DLL für ImageMagick mit dieser Version kompiliert sein.
Hier gibt es eine DLL in der VC6 Version von
ImageMagic:
http://www.sk89q.com/2010/03/vc6-windows-binaries-for-imagick-2-3-0/
Im TYPO3 Install Tool wird ImageMagick nicht erkannt.

Behebung:
Im TYPO3 Install Tool unter „1:BASIC CONFIGURATION“ nochmals den Programmpfad für ImageMagick Installation eingegeben und auf „Send“ geklickt.

Danach wurde Image Magick korrekt erkannt (siehe Bild).
Beim klicken auf „Update localconf.php“ kommt folgende Fehlermeldung.

Ursache:
Unter Windows 7 wird das Verzeichnis „Programme“ intern auf „Program Files“ umgedreht. Dieser Pfad enthält aber einer Leerzeichen. Ein Leerzeichne ist aber bei der Pfadangabe für ImageMagick nicht erlaubt.
Behebung:
Geben Sie anstatt „C:\Program Files\“ den Pfad „C:\Progra~1\“ ein. Damit müsste das abspeichern klappen.
Nachdem von eine TYPO3 Installation eine lokale Kopie in XAMPP angelegt worden ist öffnet die Website unter XAMPP nur mehr sehr langsam. Nach dem Öffnen sind die Styles (CSS)der Seite zerstört.
Wenn Sie TYPO3 ursprünglich mit RealURL (oder „mod_rewrite“) installiert haben, so müssen Sie jetzt den Pfad für RealURL im Root Template anpassen, da dieser sonst auf den alten Domänenamen verweist:
|
# configure real url extension config.tx_realurl_enable = 1 |
Die folgenden Einstellungen können mit verschiedenen IDEs angewandt werden.
1. Laden Sie die DLL in Xdebug von http://www.xdebug.org/download.php
Geladen wurde die Datei „php_xdebug-2.1.0RC1-5.3-vc6.dll“.
Anmerkung: Mit der Datei „php_xdebug-2.1.0RC1-5.2-vc6.dll“ hatte ich Probleme
diese wurde bei mir unter PHP nicht geladen.
2. Speichern Sie die DLL-Datei in den Ordner „C:\xampp\php\ext\“
3. Gehen Sie in das Verzeichnis „C:\xampp\php“ Ordner
4. Wir müssen hier die „php.ini“ verändern auf diese Weise:
- Den [Zend] Abschnitt sollte es nicht mehr geben, wenn doch, alle Zeilen ausmarken
- In der [Xdebug]-Abschnitt müssen Sie diese Zeilen einfügen:
|
zend_extension = "C:\xampp\php\ext\php_xdebug-2.1.0RC1-5.3-vc6.dll" xdebug.remote_enable = On xdebug.remote_host = localhost xdebug.remote_port = 9000 xdebug.remote_handler = dbgp xdebug.profiler_enable = 1 xdebug.profiler_output_dir = "C:\xampp\tmp" |
5. Öffnen Sie den „C:\xampp\xampp-control.exe“ und und stoppen Sie Apache
mit „Stop“ und starten Sie wenn das „Running“ verschwunden ist wieder mit
„Start“.
6. Um zu überprüfen Xdebug geladen wurde, öffnen Sie einen Browser wie
Firefox und geben http://localhost/xampp/ ein, wenn die XAMPP-Willkommen-Seite sehen klicken Sie in der Auswahl
auf „phpinfo()“.
7. Sie sollten folgendes in der Anzeige finden.

oder weiter unten die komplette Xdebug Optionen

1. Download Firefox von https://addons.mozilla.org/de/firefox/addon/58688
(Sollte easy xDebug 1.4 sein, wenn nicht suchen)
2. Sobald die Installation abgeschlossen ist, gehen Sie im Firefox zum
Menü „Extras“ -> „Add-ons“ und wählen Sie bei „easy Xdebug 1.4“ die
Schaltfläche „Einstellungen" um auf das Add-On.
3. Im Add-On werden folgende Zeilen angezeigt, welche in die Zwischenablage kopiert werden:
|
zend_extension_ts = php_xdebug.dll xdebug.remote_enable = 1 xdebug.remote_handler = dbgp xdebug.remote_mode req = xdebug.idekey = default |
4. Kopieren Sie dann den Inhalt der Zwischenablage in die „php.ini“
Datei im Verzeichnis „c:\xampp\php\“. Entfernen Sie die vorher
eingefügten Zeilen für den Xdebug wieder.
WICHTIG! Außerdem musste bei mir das
„_ts“ bei der Zeile „zend_extension_ts“ enfernt werden, ansonsten wurde Xdebug
bei mir unter PHP nicht geladen.
5. In der Rubrik „Settings“ beim Feld „Xdebug.idekey value“ wird „ECLIPSE_XDEBUG“
eingefügt Dieser Schlüssel repräsentiert den Wert für die integrierte
Entwicklungs-umgebung (IDE), um den Debug-Modus zu aktivieren (für Eclipse,
Netbeans, etc.)
6. Die Erweiterung fügt ein Symbol in der Statusleiste: Klicken auf die
Verknüpfung mit Xdebug tätig sein wird oder deaktiviert ist.
7. Ist das Symbol grün werden die Firefox Seiten im Debug-Modus laufen.
Wichtig!
Kontrollieren Sie nochmals die „phpinfo()“ auf der Startseite vom XAMPP http://localhost/xampp dort müsste, wenn Xdebug Aktiv ist folgendes angezeigt werden:

oder weiter unten die komplette Xdebug Optionen

Hinweis Dieser Abschnitt beschreibt die Einrichtung von Xdebug auf einen Server für den Einsatz von Xdebug als Remote Debugger. Bei einer lokale XAMPP Installation können Sie diesen Abschnitt überspringen.
Bevor Sie XDebug als Remote Debugger verwenden können müssen Sie XDebug auf dem Server des Entwicklersystems installieren.
Download von Xdebug
Bei mir wurde ein Beta Paket getestet: xdebug-2.1.0beta3.tgz
Sie müssen Xdebug getrennt von den übrigen von PHP kompilieren. Beachten Sie jedoch, dass Sie Zugang zu folgenden Skripten benötigen, "phpize" und "php-config".
Überprüfen Sie mit „which phpize“ und „which php-config“ ob
sich die Skripte auf Ihrem System befinden.-
Wenn sich auf Ihrem System kein "phpize" und
"php-config" Skripte befindet, müssen Sie diese Skripte zuerst nachinstallieren.
Bei neueren Linux Distribution sind diese Skripte in „php-devel“ enthalten.
Installieren Sie auf Ihr System das Pakte „php-devel“ mit:
„rpm -i php-devel“
Wenn Sie Zugang zu den Skripten "phpize" und "php-config" haben gehen Sie wie folgt vor:
1. Entpacken Sie
das Archiv: tar -xzf xdebug-2.1.x.tgz
Beachten Sie, dass Sie das Archiv nicht im PHP-Quellcode-Baum auspacken
müssen.
Xdebug wird separat als eigenes Paket erstellt, so wie oben angegeben.
2. Wechsel Sie in
das entpackte Verzeichnis: cd xdebug-2.1.0
3. Starten Sie
phpize: phpize (oder /pfad/ zu /phpize wenn sich phpize nicht in Ihrem
Pfad befindet).
4. Die Konfiguration
vom Programm durchführen:
./configure -enable-xdebug (oder: /configure -enable-xdebug
-with-php-config=/path/to/php-config, wenn php-config ist nicht in Ihrem Pfad)
5. Run: make
6. Den Pfad in
welche sich die PHP Extensions befinden könne Sie mit folgenden Befehl
feststellen:
find /usr/ -type f -name mysql.so (erste Zeile zeigt Pfad).
7. Kopieren Sie die
Module an den gewünschten Platz
cp modules/xdebug.so /usr/lib/php5/extensions/
8. Erstellen im dem
Verzeichnis „/etc/php5/config.d“ eine Datei „xdebug.ini“
erstellen, damit wird das Modul in PHP eingebunden.
9. In die Datei
„xdebug.ini“ legen Sie folgende Zeile an:
zend_extension="/usr/lib/php5/extensions/xdebug.so"
10. Starten Sie Ihren Webserver neu
(z.B. mit „rcapache2 restart“).
11. Schreiben
Sie ein PHP-Seite, mit Aufruf von "phpinfo ();" Laden Sie die diese
PHP Seite von einen Browser und suchen Sie Informationen über das „xdebug“
Modul.
Die selben Informationen erhalten Sie wenn Sie in einen Terminal Fenster
folgendes eingeben:
php –m
die Ausgaben sollte dann wie folgt aussehen
|
… [Zend Modules] |
alternativ können Sie auch folgendes eingeben
php -i | grep Xdebug
und wenn Xdebug installiert ist sollte folgende Ausgabe erscheinen
Wenn Sie diese Informationen finden, so war die Installation erfolgreich!
|
with Xdebug v2.0.3, Copyright (c) 2002-2007, by Derick Rethans |
Wenn Sie Xdebug als Remote Debugger einsetzen wollen, so können sie jetzt die notwendigen Einträge in der “php.ini” vornehmen.
Der Fehler zeigte sich bei allen mit PHP erzeugten Webseiten. Diese wurde entweder gar nicht oder nur nach langer Wartezeit angezeigt. Eingesetzt wurde „xdebug-2.1.0beta3“.
Analyse:
Nach entfernen der „xdebug.ini“ Datei aus dem Verzeichnis „/etc/php5/conf.d/“ lief alles wieder normal.
Als Erklärung vorab: Es gibt auf eine lokalen Arbeitsstation (Windows) unter XAMPP im „htdocs“ Verzeichnis ein TYPO3 Verzeichnis mit lokalen Arbeitsdateien eines bestehenden TYPO3 Projektes. Die Webseite von diesem Projekt kann über den URL http://localhost/rpw aufgerufen werden. In XAMPP und in Firefox wurde schon Xdebug eingerichtet. Es wird jetzt unter Eclipse ein neues PHP Projekt eingerichtet um diese TYPO3 Projekt in Eclipse zu Debuggen.
1. Für ein neues
Projekt wählen Sie „New“-„PHP“-„PHP Project“ aus und
klicken „Next“.

2. Geben Sie den
Namen für das neue Projekt ein z.B. „rpw“.
WICHTIG! Vergeben Sie den gleichen Namen
für das Projekt, wie das Verzeichnis unter XAMPP im „htdocs“ für das TYPO3
Projekt heißt. In unseren Fall ist das der Verzeichnisname „rpw“ daher wird
auch das PHP Projekt „rpw“ benannt.
Wenn Sie dies nicht beachten haben Sie später beim „Launchen“ Probleme.

3. Bei Contents
wählen Sie „Create new project in workspace“ als Pfad wird der lokale
Workspace-Pfad für die Entwicklerdateien angegeben. Zusätzlich wird die Option
„Enable JavaScript support for this project“ aktviert danach auf die
Schaltfläche „Finish“ klicken.

4. Es wird das
Projekt erstellt und der Workspace eingerichtet:
![]()
Werden Sie nicht ungeduldig dies kann einige Zeit dauern (bleibt lange 0%).
5. Wenn Sie das
„Progress“-Fenster eingeblendet haben, dies geht durch klicken auf das Symbol
in
der Eclipse Taskleiste, können Sie die Erstellung des Workspace mit verfolgen.

6. Nach der
Erstellung des Projektes im PHP Explorer richten wir jetzt die Verbindung für
das Debugging mit Xdebug ein.
7. Unter „Window“
– „Web Browser“ klicken Sie auf „Firefox“.
8. Gehen Sie auf
„Run“-„Debug Configuration…“.
9. Klicken Sie
zuerst auf „PHP Web Page“ und danach auf das „New“ Symbol.

10. Stellen Sie die Optionen für
Xdebug wie folgt ein. Vergeben Sie einen Namen wie z.B. „RWP Xdebug XAMPP“. Als
„Server Debugger“ wird dann „Xdebug“ gewählt, der PHP Server kann auf „Default
PHP Web Server“ belassen werden. Unter „File“ mit der Schaltfläche „Browse“ aus
dem lokalen TYPO3 Projektverzeichnis die „index.php“ Datei auswählen. Die
Einstellung URL lassen Sie auf „Auto Generate“. Danach auf „Apply“ klicken.

11. Klicken Sie jetzt auf „Debug“ klicken,
wird soforteine Debugging Sitzung gestartet. Wir klicken aber auf „Close“
um die Einrichtung von Xdebug abzuschließen.
Hinweis Dieser Abschnitt beschreibt die Einrichtung von Xdebug auf einen Server für den Einsatz von Xdebug als Remote Debugger. Bei einer lokale XAMPP Installation können Sie diesen Abschnitt überspringen.
1. Gehen Sie auf „Run“-„Debug Configuration…“

2. Geben Sie einen Namen für Konfiguration
ein. Als Server Debugger wird „XDebug“ ausgewählt. Danach klicken Sie auf „New“
für eine neue PHP Server Connection.

3. Geben Sie einen Namen für die Server
Connection ein und danach den URL für den Server.
Klicken Sie auf „Finish“ damit die Verbindung eingerichtet wird.

4. Klicken Sie jetzt auf die Schaltfläche
„Configure“.
5. Klicken Sie auf „Path Mapping“ und
danach auf „Add“ um die Pfade für die TYPO3 Source Dateien anzugeben.

6. Als erstes legen Sie den Pfad für
„t3lib“ an. Beim Pfad auf dem Server setzen sie einen Schrägstrich davor „/“.
Den Pfad für den Workspace können Sie bequem über die Schaltfläche „Browse“
auswählen.

7. Als nächste machen Sie da selbe für den
„typo3“ und den „typo3_src“ Pfad durchführen. Wenn Sie alle Pfade eingeben
haben klicken Sie auf „OK“
8. Sie könne jetzt das Konfigurationsfenster mit „Close“ schließen.


In der Statusleiste wird „Launching“ angezeigt und dieser hängt bei 57% fest.
![]()
oder

Ursache:
Kontrollieren Sie mit „phpinfo()“ ob Xdebug unter PHP geladen wurde. Dieser Fehler deutet darauf hin das Xdebug nicht läuft.
Behebung:
Gehen Sie nochmals die Kapitel für die Installation von Xdebug durch. Eventuell hat sich bei der Konfiguration von Xdebug ein Fehler eingeschlichen.
Kontrollieren sie dann nochmals unter „phpinfo()“ ob Xdebug angezeigt wird. Starten Sie danach nochmals eine Debug-Sitzung.
Jedes Mal wenn versucht wird eine Debug-Sitzung zu starten kommt die nachfolgende Meldung.

Behebung:
Es wurde vorher eine Debug-Sitzung gestartet welche noch
nicht gestoppt wurde oder die noch immer läuft. Stoppen Sie die alte
Debug-Sitzung in der Debug Perspektive mit dem roten Rechteck für „Terminate“.


Ursache:
Der oben angezeigt Fehler ist bei mir aufgetreten wenn die Xdebug Version 2.1.0rc1
mit der Datei „php_xdebug-2.1.0RC1-5.3-vc6.dll“ eingebunden wurde. Wird danach nochmals eine Debug-Sitzung gestartet, läuft diese zwar aber es werden keine Variablen angezeigt.
Behebung:
Bei der Verwendung der Xdebug Version 2.0.6-dev mit der der Datei „php_xdebug“ welche mit dem Firefox Add-On geladen wurde, tritt dieser Fehler nicht auf.

Ursache:
Bei der Projekterstellung wurde als Projektname z.B. „Neues Projekt“ gewählt. Exclipse versucht jetzt beim Debugging diese Pfad auf den Webserver mit „http://localhost/neues projekt“ zu „Launchen“. Diesen Pfad gibt es aber auf dem Webserver nicht und direktes erstellen funktioniert nicht.
In der „Debug Configuration“ wurde der „URL“ mit „Auto
Generate“ erzeugt. Doch diese Website gibt es auf dem Apache Server nicht.

Behebung:
Entfernen Sie das Häkchen bei „Auto Generate“ und geben Sie beim URL in das Eingabefeld „rpw/index.php“ ein. Klicken Sie auf „Apply“ und versuchten Sie nochmals eine Debug-Session zu starten.

Ursache:
Bei der „Debug Configuration“ wurde „Firefox – Internal
Server“ ausgewählt.

Bei „Start Section“ wurde „Current Page“ und bei „Server“ wurde „Use built-in Web server“ ausgewählt. Da dies aber ein TYPO3 Projekt ist, welches spezielle Apache, PHP und eine mySQL Datenbank benötigt, führte diese zu dem oben angeführten Fehler.
Behebung:
Stellen Sie die „Debug Configuration“ auf „PHP Web Page“ um. Siehe Einrichtung Exclipse Xdebug unter XAMPP und Firefox.
Dieser Fehler zeigt sich bei „Include Files“ im PHP Code. Entweder werden die Variablen gar nicht angezeigt, oder es wird der Name angezeigt mit „<Uninitialized>“.

Behebung:
Versuchen Sie folgende Zeilen zu Ihrer „php.ini“ im Bereich der Xdebug Konfiguration hinzuzufügen:
|
xdebug.collect_params=1 |
1. Wählen aus dem PHP Explorer die Datei „index.php“ aus.
Klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie „Debug As“ –
„PHP Web Page“ aus.

2. Bestätigen Sie die Abfrage ob die PHP Debug Perspektive
gestartet werden soll.

3.
Sollte die Verbindung nicht klappen
gehen Sie nochmals in „Run“-„Debug Configuration…“

Ändern Sie Ihre Einstellungen wie oben
angezeigt ab.
Wenn versucht wird die „index.php“ von einer TYPO3 Website als XDebug Remote Debugging Session zu starten erhalte ich immer folgende Fehlermeldung:


Analyse:
Behebung:

Ursache: Der ZEND Server für das ZEN Remote Debugging wurde nicht installiert. Siehe dazu auf der Website nach klicken auf den Link „here“. Alternativ kann XDebug verwendet anstatt des ZEND Servers verwendet werden.
Siehe unter: http://www.zend.com/community/pdt?ecl=EclipseZend
(leider in englisch)
Before we get into the configuration of xdebug and Eclipse PDT, let us have a look at how PHP debugging with xdebug actually works. This will help you better understand the configuration described below.
When debugging is enabled in php.ini, xdebug controls the program execution in PHP, which basically means that xdebug can pause and resume program execution at any time. When program execution is paused, xdebug can retrieve information about the current program state, like reading variable values. It is even possible for xdebug to change the value of a variable, then continue the script execution with a modified value.
The xdebug extension is a server, expecting client connections at a certain configurable port. There are two protocols that can be used to communicate between the xdebug client and the xdebug server, GDB and DBGp. GDB is an older protocol, which has been superceded by DBGp. By sending commands to the xdebug server, the xdebug client acts as a sort of remote control for PHP, telling PHP to pause execution, execute one step, or to continue the program execution. The client is usually embedded into an editor or the IDE (in our case, into Eclipse PDT), so you will not have to deal with the debug protocol itself.
The PHP server with xdebug can run on a another system than the one running the xdebug client. That is why xdebug is called a remote debugger. For simplicity, we will set up the debugging server and client on the same computer.
There are two different modes of starting a debug session with
xdebug. They are controlled by the php.ini setting xdebug.remote_mode. The
default setting is req, which makes xdebug always connect to the debug
client when a script is started. If you want xdebug to only connect to the
debug client on a breakpoint or an error in the script, you can set xdebug.remote_mode to jit.
I would recommend keeping the default setting, which you can achieve by putting
no xdebug.remote_mode
setting into php.ini.
To actually start a debug session, you must pass a parameter XDEBUG_SESSION_START to the script by GET, POST, or cookie. The value of this parameter is the debug session name, which should be unique at a given point in time, so that xdebug can distinguish different debug sessions running concurrently. To end a debug session, you need to pass XDEBUG_SESSION_STOP to the script.
Instead of manually dealing with the starting and stopping of debug sessions, you can install a firefox plugin that allows you to conveniently start and stop a debug session with a mouse click.
Using Eclipse PDT, you will not even have to worry about the browser plugin, as the IDE takes care of passing
the appropriate parameters to the browser. xdebug also requires setting of a IDE key, which you also do not have to worry about, because Eclipse sets it for you.
Now let us configure xdebug debugging. Add the following settings to php.ini:
|
xdebug.remote_enable=On xdebug.remote_host="localhost" xdebug.remote_port=9000 xdebug.remote_handler="dbgp" |
Anmerkung: Die folgenden Zeilen gelten nicht für SUSE Linux, da dort die Zeile “zend_extension_ts” in der Datei “Xdebug.ini” steht.
Make sure you add these lines after the zend_extension_ts line that loads the xdebug extension. The first entry enables the debugger. The second entry defines that the debug client runs on localhost - this could be any valid DNS name or IP address, if the client and the server were not on the same computer.
The third setting defines the port the xdebug server expects the client to listen on (which, strictly speaking, makes the client a server, but let us not get confused about this). By default, the port is 9000. This port is configured in Eclipse by default, and if there is no compelling reason to do otherwise, you should keep the default port. If you want to change the port, keep in mind that you have to configure the same port number in Eclipse and php.ini.
Also, make sure that no firewall gets into your way. When you start Eclipse, you might see a warning that Java is trying to set up a server, bind to a port, access the network, or perform some obscure potentially dangerous action. Of course, it's not dangerous, it's just the xdebug client trying to listen at port 9000. If you have problems with debugging, check if there are any firewalls between the debug server and the debug client that might block port 9000.
Last but not least, we have to tell xdebug which protocol the client speaks. Eclipse PDT speaks DBGp, so you may not change this setting.
To configure Eclipse PDT, start Eclipse by double-clicking the Eclipse executable. Create a new PHP project. Let us name the project debug_test. Now, create a file debug.php in the project, add some code, then save the file.
Now let us configure Eclipse for debugging with xdebug. First of all, we will configure Eclipse to launch projects in an external browser instead of its internal browser. When an external browser is configured, all debugging sessions will be launched in an external browser as well. Using an external browser is not absolutely necessary, but I prefer to work with Firefox instead of Eclipse's internal browser. Choose Window from the menu bar, then select Preferences (see the following screenshot). Expand the General subtree, and click Web Browser. Now, select the radio button Use external browser and click Apply.

Eclipse PDT supports the Zend debugger and xdebug. By default, the Zend debugger is activated. To change this setting to xdebug, expand the PHP subtree and the Debug subtree of PHP. Then, change PHP debugger to Xdebug and click Apply.
Now, choose Run from the menu bar and click the entry Debug Configuration… Then, double click PHP Web Page to create a new debug configuration.
You will see a window with three tabs, Server, Advanced, and Common. When not already selected, choose Xdebug as Server Debugger. In the File / Project text field, you must enter the path to the script you want to debug. This path must be relative to your workspace. On my system, this is /debug_test/debug.php. Click Browse and select the file debug.php in the debug_test directory.
Eclipse needs to know the URL matching the script filename and path you just entered. This is required to highlight the currently executed line in the source code. The URL text field shows the URL that is mapped to the filename. By default, the URL text field deactivated because the Auto Generate checkbox is activated. If the displayed URL does not match the URL you would type into your browser to see the script you have specified in File / Project, uncheck Auto Generate and enter the correct URL in the URL text field. If thg script to debug requires any GET parameters, you can append them to the URL given here.
Do not forget to click Apply to save the changes. The following screenshot shows how the debug configuration looks like on my system:

Change to the Advanced tab and make sure that Open in Browser and the radio button Debug All Pages both are checked. Now you can close the configuration window and start a debugging session.
To start debugging a PHP script, choose Run from the menu bar and select Debug. You can shortcut this by pressing the F11 key. Eclipse will ask you wether you want to open the debug view. You should tick the checkbox to remember this setting, otherwise you will be asked the same question every time you start debugging.
The following screenshot shows Eclipse's debug view of my debug.php script (which contains some pointless
code):

Eclipse has opened your system's default browser (or whatever browser you have configured it to open). You will not see output in the browser window yet, because Eclipse by default pauses script execution on the first line of the script, as if a breakpoint were set on this line. If you want to disable this behaviour, uncheck the Break at First Line checkbox in the Breakpoint section from the debug dialog configuration window.
As the screenshot shows, you can see the source code of the debugged file, with the currently executed line marked with an arroq to the left of the line number. In the above right area, you can choose between different tabs. The Variables tab shows the current values of all variables in the current scope. The superglobal variables are valid in every scope, so they are always displayed. The Breakpoints tab lets you view and edit all breakpoints in your script. Eclipse will remember any breakpoints you have set on the code, even if you close and restart Eclipse.
You can now continue program execution until the next breakpoint is reached, execute just one step, or step into the next function, or out of the next function scope by clicking the appropriate icons in the Debug top left area of the window. Stepping is useful when you have located the problem area in your code and want to watch closely what is happening. You will see the variable values change with each step.
You can even change variable values during script runtime. While this does not really fix a bug, it might be useful to provoke certain errors without modifying the source code. To change a variable, click the current value, modify it and press Enter.
A breakpoint pauses script execution and allows you to inspect variable values, then continue the program. The program execution is also paused if an exception occurs in your PHP code. To set a breakpoint, right-click a line number in the source code, then choose Toggle Breakpoints from the context menu. You can remove breakpoints in the same way, or remove them in the Breakpoints tab by right-clicking a breakpoint and selecting Remove from the context menu.
You can even add a condition to a breakpoint. Conditional breakpoints will only pause the program execution when the given condition is met. This is can be very useful when the same piece of code is executed multiple times with different parametrization. To add a condition to a breakpoint, right-click the breakpoint icon to the left of the line number in the source code view. Choose Breakpoint Properties. You can remove conditions in the same way or by right-clicking a breakpoint and selecting Set Condition from the context menu in the Breakpoints tab.
Check Enable Set Condition and enter a condition in PHP
code into the text field. In my debug.php, the function test() is called on line 11 and a breakpoint is set on this line. By
adding the condition $a != '' xdebug will only pause
program execution on this line when the local variable $a is non-empty at the time the breakpoint is reached.
To end a debugging session, highlight Remote Launch in the top left pane, then click the Terminate icon which is located between the Run and the various Step icons. If you had Eclipse run the script in an external browser, you need to close the browser window manually.
Remote debugging is a great interactive and non-intrusive way of
finding bugs in your PHP scripts. Instead of putting var_dump() statements into your code, or working your way through a long
trace log including parameter and return values, debugging gives you a
macrosopic view of critical areas in your code.
Next week, we will explore creating code coverage statistics with xdebug. To aggregate the statistics and create a nicely formatted HTML report of the code coverage in our projects, we will also use phing and PHPUnit. So, make sure you check back here next week for the fifth and final part in this series of xdebug articles. Until then: Happy debugging - with xdebug, of course.
Stefan Priebsch has been solving IT problems for over 25 years. He is founder and CEO of e-novative GmbH, one of the first German IT consultancies offering PHP-based solutions. Stefan holds a university degree in computer science, is an internationally recognized PHP expert, book author, trainer and consultant. You can reach him at stefan.priebsch@e-novative.de.



