Das Ding mit dem XDebug hatten wir ja schon mal… Folgendes hat sich neu ergeben:

  • Launchpad bietet ein php5-xdebug package für Ubuntu Gutsy.
  • Der XDebug lässt sich somit einfach installieren, z.B. in einer VMWare-Appliance
  • Das Eclipse PDT hat einen XDebug-Support integriert.

Die Konfiguration serverseitig ist recht einfach:

xdebug.remote_enable = on
xdebug.remote_host = 192.168.237.1 # ACHTUNG: Das ist die Workstation mit Eclipse

In der Datei /etc/php5/conf.d/xdebug.ini bearbeiten.

In Eclipse muss schliesslich unter “Window” -> “Preferences” der Browser eingestellt werden. Bei Firefox reicht als Parameter ein simples %URL%. Im Debug Dialog muss eine “PHP-WebPage” konfiguration angelegt werden. In der Server-Konfiguration müssen beim Tab “File Mapping” die absoluten Pfade zu den Dateien angelegt werden. Die Online-Hilfe von Eclipse bietet weitere Infos.

Multi-User Environment / Entwickler hinter der Firewall: Für solche Dinge gibts einen Proxy fürs DBGp (Debug Protocol). Dieser muss verwendet werden, wenn der PHP-Server nicht auf den Port des Clients (also den PC mit Eclipse) zugreifen kann, oder wenn mehrere User sich eine Debug-Session teilen möchten.

Da wir in Zukunft Daten über Kundenzufriedenheit und -Feedback per Umfrage einsammeln möchten, habe ich heute mal eine webbasierte Survey-Software evaluiert. Die Evaluation gestaltete sich einfach, nachdem ich mit ein wenig Googlen eine Vergleichstabelle gefunden habe.

Ein wenig mehr googeln ergab, dass die Liste wohl ziemlich akkurat ist, also bin ich die Programme auf der Liste kurz durchgegangen. Langer Rede kurzer Sinn: LimeSurvey ist die Wahl!

Heute Morgen gabs einen Ausfall bei vertox.ch. Wiedermal ein RZ-Problem. Wird Zeit dass wir RZ wechseln… Wir arbeiten daran, mit Hochdruck…

Für etwas anderes habe ich mir dann über den Mittag doch mal 5min zeit genommen: An der RIPE55-Konferenz (Ripe ist zuständig für die weltweite Verwaltung der IP-Addressen) sangen zwei IP-Cracks ein Lied:

Eine wichtige Problematik, auch für den Endkunden: Wird nicht von IPv4 auf IPv6 Upgraded, endet das Internet im Jahr 2011! (Dort stehen auch weitere Infos zur Entstehung des Lieds)

IPv6 makes me let out a sigh,
but I spose we better give it a try,
I suppose we better give it a try!

Am OpenDay habe ich ein während dem Apero ein paar Takte mit Frau Hagen geredet. Sie stellt zunehmendes Interesse an IPv6 fest. Es besteht also noch Hoffnung fürs Internet…

Hibernate – auch bekannt als “Suspend to Disk” – erfreut sich unter mobilen Benutzern grosser Beliebtheit: Im Büro das Laptop schnell ausschalten, im Zug einfach wieder arbeiten, im Bus das Laptop im Rucksack, und im Zuhause schnell noch die Arbeit beenden. Wohlgemerkt: Emails oder Briefe schreiben sich so ohne Speichern. Da immer der momentane Systemzustand wiederhergestellt wird.

Einziger Nachteil unter Ubuntu: In der Default-Einstellung braucht ein Suspend fast so lange wie ein Start.

Schneller gehts mit dem Tool uswsusp und dieser Anleitung.

Eine recht einfache Anleitung zur Installation von XDebug findet man ja schnell. Da jedoch php5-dev installiert werden muss, wirds wohl auch schon bald von der codeBase ein .deb geben. Wir wollen keine Development-Pakete auf unseren Servern, die enthalten Kompiler und machen das System deshalb unsicher.

Was der freie Debugger sonst noch so kann, finden Sie auf der XDebug-Homepage raus.

Auf Remote Debugging, und die Integration in Eclipse kommen wir noch zu sprechen… versprochen.

Neben den Zend-IDE’s gibts auch ein anderes, Zend-Unterstütztes IDE-Framework: Eclipse PDT (Downloads)

Zusammen mit dem SVN-Plugin Subclipse und dem mitgelieferten Zend Debugger entsteht eine sehr Brauchbare PHP-IDE. Im Anhang an diesem Beitrag befindet sich eine importierbare XML mit den nötigen Eclipse-Sites. Wenn Sie Eclipse neu installieren empfehlen wir aber, gleich das All-In-One PDT zu nehmen.

Weitere Infos:

  • Eclipse PDT Einführung
  • Subclipse Anleitung
  • Anleitung für PDT und Aptana (seehr cooler Editor für JavaScript und HTML mit SFTP- und FTP-Unterstützung). Aus folgenden Gründen wird Aptana von uns aber nicht verwendet:
    • Ungenügende PHP-Unterstützung
    • (S)FTP-Synchronsisation zu langsam.
    • JavaScript-Debugging und Verification wird im Firefox mit Firebug erledigt (siehe Beitrag dazu)
    • Bei dynamischem JavaScript, wie z.B. in Symfony, das Serverseitig “gebaut” und an den Client gesendet wird, lässt sich der Debugger eh nicht verwenden.

Step-By-Step PHP-Debugging im PDT erfordert übrigens Zugriff auf einen PHP-Webserver mit Zend- oder XDebug-Debugger. Wir werden noch eine Anleitung liefern.

FTP ist unsicher. Nicht nur alle Daten, sondern auch alle Passwörter / Benutzernamen werden in Klartext übermittelt.

Mit SSL oder TLS verschlüsselt werden aber sowohl die Daten, als auch die Credentials verschlüsselt übermittelt. Wir verwenden den Proftpd. Eine gute Anleitung wie man diesen verschlüsselt findet sich hier: http://www.diegosblog.de/2007/05/13/proftpd-ftps/

Einige Ubuntuspezifische Änderungen brauchts aber trotzdem:

Schlüssel generieren

openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/proftpd.cert.pem -keyout /etc/ssl/certs/proftpd.key.pem

Server Konfigurieren

TLSEngine on
TLSLog /var/log/proftpd-tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/ssl/certs/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.key.pem
TLSVerifyClient off

Zertifikat erstellen folgt später.

Firefox ist für Webentwickler ein sehr interessantes Tool. Seine Plugin-Schnittstelle wird auch für Entwicklungs- und Webmastertools rege benutzt:

  • Webmaster:
    • FireFTP: Ein FTP-Client für Firefox, unterstützt FTPS und bietet ein Synchronisations-Feature.
  • Webdesign:
    • LocaleSwitcher: Zwischen verschiedenen Sprachen wechseln.
    • Lorem Ipsum-Generator: Generiert den Lorem Ipsum-Text zum Testen von Schriftbildern, Formularen etc.
    • Web Developer Toolbar: Bietet diverse Tools wie hervorheben von Tabellenzellen, Div’s oder anzeigen von CSS-Elementen sowie class- und id-Informationen. Sehr praktisch sind auch der eingebaute Masstab, die Verlinkung mit den W3C-Validatoren, und die Auflösungs-Funktion, die das Fenster auf eine bestimmte Auflösung anpasst.
  • Webentwicklung:
    • FireBug: Ein Debugger für JavaScript, CSS, HTML. Neben Profiling von Ladezeiten und JavaScripts kann FireBug auch Step-By-Step JavaScript debuggen. Ein HTTP-Protokollmonitor gehört ebenfalls zum Umfang.