DEV3 Tutorial – TYPO3 IDE mit Eclipse

Beschreibung: dev3 DEV3 Tutorial   TYPO3 IDE mit eclipse

 

Copyright © 2010 by RealPowerWork

 

 

DEV3 Tutorial – TYPO3 IDE mit Eclipse. 1

Einleitung. 3

Aptana Installation über Update Manager. 4

DEV3 Installation über Update Manager. 5

Fehler „DEV3“ nach Installation nicht unter „New“ in der Auswahlliste. 5

Installation von Subclipse (für SVN) 6

Lokales FLOW3 Project anlegen. 7

Lokales TYPO3 Script Bearbeiten. 10

Fehler „Snippet View“ erzeugt „NullPointer Exeption“ 10

Subversion auf SLES 10.3 Linux Server. 11

Vorbedingungen. 11

Installation und Konfiguration. 11

eDirectory (für eine eigenständige Konfiguration) 11

Installation: 11

eDirectory Configuration: 11

Installation Subversion. 12

Fügen Sie das SLE-10-SDK-SP3 als Installationsquelle hinzu. 12

Installieren Sie Apache2 und Subversion-Server-Software. 12

Konfigurieren Subversion mit SVN (svnserve) 12

Konfigurieren Subversion WebDAV (über Apache2) mit Passwortdatei 13

Konfigurieren Subversion  WebDAV (über Apache2) und LDAP. 13

Erstellen des „Parent“-Repository für Subversion. 14

Aktivieren von „https“ für Apache2 (Optional) 14

Aktivieren „ldaps“ sicheren LDAP-Authentifizierung (optional) 15

Fehler beim Starten vom Apache2 Server beim Modul „mod_dav_svn“. 15

Kurzzusammenfassung der Subversion Installation. 15

Arbeiten mit SVN-Repository. 16

SVN Client side. 16

Check-In (Import) von Projekte. 16

Check-Out von Projekte (Arbeitskopie –WC) 16

Commit von Dateien (Projekte) 16

Update einer Arbeitskopie. 16

Fehler bei „svn://“ Verbindung „..der Zielcomputer hat die Verbindung verweigert.“. 16

TYPO3 auf Windows (Lokal) mit SVN und Xdebug. 17

XAMPP Installation. 17

TYPO3 Arbeitskopie erstellen. 19

Lokales Arbeitskopie vom SVN-Repository erstellen. 19

Einstellen des Datenbank Zugriffs 20

Installation von ”Junction” (symbolische Link) 21

Junction Konfiguration. 21

Datenbank-Einstellungen. 21

Installation von ImageMagick unter Windows 22

Einbindung von ImageMagick in XAMPP. 23

Fehler beim Zugriff auf die TYPO3 Website mit http://localhost/rpw/index.php. 23

Fehler nach Einbindung  von ImageMagick in „php.ini“ beim Start vom Apache2. 24

ImageMagick wird im TYPO3 Install Tool nicht erkannt 25

Der ImageMagick Pfad kann im TYPO3 Install Tool nicht gespeichert werden. 25

Fehler die TYPO3 Website öffnet sich sehr langsam und ohne Styles(CSS) 25

Aktivieren von Xdebug in XAMPP. 26

Firefox mit Xdebug Konfiguration. 27

Installation vom Xdebug auf SUSE Server. 27

Fehler Webseitenanzeige langsam oder hängt wenn „XDebug“ geladen wurde. 29

Eclipse Projekt für Debugging Einrichten. 30

Einrichtung von Xdebug für XAMPP. 30

Einrichtung von Xdebug für Remote Debugging. 32

Erste Debugging Sitzung in Eclipse starten. 35

Starten von TYPO3 Debugging mit XAMPP und Firefox. 35

Fehler bei Debugging Sitzung kommt „Launching: waiting for XDebug session“. 35

Fehler bei  starten einer Debugging Sitzung kommt „Web Lunch Already Running“. 36

Fehler in Debugging „Unexpected termination of script, debugging ended.“. 36

Fehler nach starten einer Debugging Sitzung wird im Firefox folgendes angezeigt 36

Fehler nach starten einer Debugging Sitzung wird im Firefox folgendes angezeigt 37

Starten von TYPO3 Remote Debugging. 37

Fehler bei XDebug wenn „Run“-„Debug As“ – „PHP Web Page“ gestartet wird. 38

Fehler „Could not open the editor: Text editor does not have document provider.“. 39

Fehlermeldung wenn Zend Remote Debugger eingerichtet wird. 39

Allgemeines zum Remote Debugger. 40

How debugging works. 40

Configuring xdebug. 40

Configuring Eclipse PDT. 41

Debugging a PHP script. 43

Changing Variables at Runtime. 44

Breakpoints. 44

Conclusion. 44

About the author: 44

 


 

Einleitung

 

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.


 

Aptana Installation über Update Manager

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.



DEV3 Installation über Update Manager

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.

 

Fehler „DEV3“ nach Installation nicht unter „New“ in der Auswahlliste

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.

 

Installation von Subclipse (für SVN)

 

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.

 

 


 

Lokales FLOW3 Project anlegen

 

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.

Beschreibung: dev3 5 300x225 DEV3 Tutorial   TYPO3 IDE mit eclipse

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">


Fehler „Snippet View“ erzeugt „NullPointer Exeption“

Bekannter BUG #3265


 

Subversion auf SLES 10.3 Linux Server

 

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.

Vorbedingungen

·         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 und Konfiguration

 

Installation von SUSE Linux Enterprise SP3 i386 von CD-Rom oder DVD. Wählen Sie Standardinstallation (keine zusätzlichen Schematas).

 

eDirectory (für eine eigenständige Konfiguration)

 

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.

Installation:

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.

eDirectory Configuration:

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".

 

Installation Subversion

Fügen Sie das SLE-10-SDK-SP3 als Installationsquelle hinzu

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 Apache2 und Subversion-Server-Software

 

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“.

 

Konfigurieren Subversion mit SVN (svnserve)

 

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

 

Konfigurieren Subversion WebDAV (über Apache2) mit Passwortdatei

 

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>

 

Konfigurieren Subversion  WebDAV (über Apache2) und LDAP

 

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 des „Parent“-Repository für Subversion

 

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/

 

Aktivieren von „https“ für Apache2 (Optional)

 

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).

Aktivieren „ldaps“ sicheren LDAP-Authentifizierung (optional)

Siehe http://httpd.apache.org/docs/2.2/mod/mod_ldap.html

 

Fehler beim Starten vom Apache2 Server beim Modul „mod_dav_svn“

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"

Kurzzusammenfassung der Subversion Installation

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.


 

Arbeiten mit SVN-Repository

 

SVN Client side


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/

 

Check-In (Import) von Projekte

 

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…

Check-Out von Projekte (Arbeitskopie –WC)

 

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…

 

Commit von Dateien (Projekte)

 

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…

 

Update einer Arbeitskopie

 

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…

 

Fehler bei „svn://“ Verbindung „..der Zielcomputer hat die Verbindung verweigert.“

Kontrollieren Sie den URL für die Verbindung, eventuell  müssen Sie den kompletten Pfad von Root abwärts angeben.


 

TYPO3 auf Windows (Lokal) mit SVN und Xdebug

 

Voraussetzungen: Ein Remote-SVN-Repository mit allen Ihren TYPO3-Quellen.

XAMPP Installation


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.

TYPO3 Arbeitskopie erstellen

Lokales Arbeitskopie vom SVN-Repository erstellen

 

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.

 

Einstellen des Datenbank Zugriffs

 

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

 

 

 

 


 

Installation von ”Junction” (symbolische Link)

 

„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.

 

Junction Konfiguration

 

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

 

Datenbank-Einstellungen

 

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.

 

Installation von ImageMagick unter Windows

 

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.

 

Einbindung von ImageMagick in XAMPP

 

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.

 

Fehler beim Zugriff auf die TYPO3 Website mit http://localhost/rpw/index.php

 

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.

 

Fehler nach Einbindung  von ImageMagick in „php.ini“ beim Start vom Apache2

 

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/

 


 

ImageMagick wird im TYPO3 Install Tool nicht erkannt

 

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).

 

Der ImageMagick Pfad kann im TYPO3 Install Tool nicht gespeichert werden

 

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.

 

Fehler die TYPO3 Website öffnet sich sehr langsam und ohne Styles(CSS)

 

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.simulateStaticDocuments = 0
config.baseURL = http://localhost/rpw/

config.tx_realurl_enable = 1
config.prefixLocalAnchors = all

 

Aktivieren von Xdebug in XAMPP

 

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



Firefox mit Xdebug Konfiguration

 

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

 

Installation vom Xdebug auf SUSE Server

 

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

http://www.xdebug.org/

 

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]
Xdebug


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.

 

Fehler Webseitenanzeige langsam oder hängt wenn „XDebug“ geladen wurde

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.

 

 

 


 

Eclipse Projekt für Debugging Einrichten

 

Einrichtung von Xdebug für XAMPP

 

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.

 

Einrichtung von Xdebug für Remote Debugging

 

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.

 

 


 

Erste Debugging Sitzung in Eclipse starten

Starten von TYPO3 Debugging mit XAMPP und Firefox

 

 

 

 

 

 

Fehler bei Debugging Sitzung kommt „Launching: waiting for XDebug session“

 

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.


 

Fehler bei  starten einer Debugging Sitzung kommt „Web Lunch Already Running“

 

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“.

 

Fehler in Debugging „Unexpected termination of script, debugging ended.“

 

 

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.


 

Fehler nach starten einer Debugging Sitzung wird im Firefox folgendes angezeigt

 

 

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.

 

Fehler nach starten einer Debugging Sitzung wird im Firefox folgendes angezeigt

 

 

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.

 

 

Fehler in Debugging Session zeigt keine Variablen oder zeigt diese als „<Uninitialized>“

 

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
xdebug.collect_var=1
xdebug.collect_return=1

 

 

Starten von TYPO3 Remote Debugging

 

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.

 

 

Fehler bei XDebug wenn „Run“-„Debug As“ – „PHP Web Page“ gestartet wird

 

Wenn versucht wird die „index.php“ von einer TYPO3 Website als XDebug Remote Debugging Session zu starten erhalte ich immer folgende Fehlermeldung:

 

 

Fehler „Could not open the editor: Text editor does not have document provider.“

 

 

Analyse:

 

 

Behebung:

 

Fehlermeldung wenn Zend Remote Debugger eingerichtet wird

 

 

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

 


 

Allgemeines zum XDebug Debugger

(leider in englisch)

How debugging works

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.

 

Configuring xdebug

 

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.

 

 

Configuring Eclipse PDT

 

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:

 

Beschreibung: http://devzone.zend.com/images/articles/2930/eclipse_debug_config.jpg

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.

 


 

Debugging a PHP script

 

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):

 

Beschreibung: http://devzone.zend.com/images/articles/2930/eclipse_debug.jpg

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.

 

Changing Variables at Runtime

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.

 

Breakpoints

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.

 

Conclusion

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.

 

About the author:

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.

 

 

 

 

 

 

 



[1] WC = Working Copy