ClearWeb, die Webhosting und Groupware-Plattform von Tecnostore Group wird jetzt auch per Prezi präsentiert. In dieser Präsentation lernen Sie ClearWeb neu kennen:

ClearWeb ist Ihr Komplettpaket für Kommunikation und Auftritt: Ausser Webhosting und E-Mail bietet ClearWeb Package Installer für Web-Apps, einen XMPP (Jabber) Chat mit Text, Bild und Video-Funktion.

Wie jedes Produkt der Tecnostore Group können Sie auch ClearWeb online kaufen. Nach der Bestellung können Sie das Produkt 30 Tage testen.

Gemäss diesem Blog-Post eine ganze Menge, hier die Highlights:

Alles Dinge, auf die wir schon lange warten. Schade dass gemäss Roadmap der 5.1 Milestone erst zu 18% erreicht ist. Mit einem Release dürfte man also erst Mitte 2009 rechnen können.

Da die PHP-Einstellung allow_url_fopen = On als unsicher gilt, muss sie ausgeschaltet werden. Als Konsequenz lassen sich keine urls mehr als Dateien öffnen:

include_once('http://domain.com/sourcefile.php');
$fp = fopen('http://domain.com/file.txt', 'rw');

Der Link oben erklärt ausführlich, warum das so ist: Wenn man URL’s als Dateien öffnen kann, kann man auch beliebigen PHP-, SQL- oder JavaScript-Code nachladen.

Wenn man trotzdem URL’s öffnen muss, ist Curl eine Alternative. Die Client URL Library ist eine Art Browser. So lassen sich Dateien aus URL’s auch ohne fopen öffnen:

$out = fopen('downloads/newfile.zip');
$ch = curl_init('http://domain.tld/file.zip');

curl_setopt($ch, CURLOPT_FILE, $out);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $file);

curl_exec($ch);
if($ch == false) { echo "
Error is : ".curl_error ( $ch); }

curl_close($ch);

Joomla 1.5 ist ja schon seit einer Weile draussen. Zeit mal ein paar nette Links & Fakten aufzuschreiben:

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!

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.

Die Direktive open_basedir erlaubt, unabhängig von Safemode oder Permissions, den Zugriff von PHP-Skripten auf bestimmte Verzeichnisse einzuschränken. Dabei kommt es aber manchmal zu Problemen, wenn folgendes vergessen wurde:

  • Der session.save_path: PHP kann keine Sessions abspeichern, wenn der Zugriff auf diesen Pfad verboten ist.
  • Das upload_tmp_dir: PHP kann sonst nich auf hochgeladene Dateien zugreifen, das Hochladen an sich klappt aber.
  • Der include_path: PHP kann sonst keine Libraries im include_path öffnen.

Was nicht hineingehört:

  • Pfad zu /tmp: Hier werden auch von Systemapplikationen temporäre Dateien gespeichert.
  • Pfad zu sendmail: Liegt, zumindest bei Debian, im /usr/sbin. Dieser Pfad gehört ganz sicher nicht in eine Web-Konfiguration… Sendmail wird übrigens trotzdem gefunden.