eAccelerator vs. xcache: Caches für PHP

Geschrieben von everflux am April 23rd, 2008

Nachdem Dominik ein paar Benchmarks zu verschiedenen opcode Caches für PHP veröffentlich hat, möchte ich auch ein paar Erfahrungen von mir beisteuern.

Ich habe auf verschiedenen (Linux) Servern schon seit langer Zeit (code) Caches für PHP eingesetzt, doch keiner hat bisher so funktioniert, dass ich gut zufrieden war. Die Geschwindigkeit ist dabei weniger das Problem, als die Stabilität.

Weiterlesen »

Phpbb3 und mod_gzip – mysteriöse Probleme

Geschrieben von everflux am April 20th, 2008

PhpBB3 ist nun schon eine Weile veröffentlicht – und so stellt man das eine oder andere Forum um. Probeläufe werden gemacht, ob eine phpBB2 nach phpBB3 Migration klappt, alle Userdaten und Avatare mitkommen.

Nachdem dann auch das Avatar-Salt richtig gesetzt ist, sieht erstmal alles gut aus. Bis die ersten User des phpBB3 Forum klagen, dass „die Seite langsam“ ist. Auch mir selber kamen längere Ladezeiten unter.

Manchmal dauerte es 15 Sekunden bis ein Avatar Bild geladen war – der Rest des phpBB Forums war schnell wie erwartet.

Des Rätsels Lösung fand sich dann dank Stefan:

Nur bei HTTP 1.1 Requests und aktiviertem Keepalive bzw. HTTP Pipelining und nur bei Bildern trat das Problem auf. Schnell war identifiziert, dass die 15 Sekunden genau der maximalen Keepalive Zeit des Apache entsprachen.

Was war nun passiert: Im Apache ist mod_gzip (bzw. DEFLATE) aktiviert. Die Avatare werden von einem PHP Script ausgeliefert und nicht mehr direkt verlinkt. Dabei wird von dem Script auch der Content-Length Header gesetzt – auf die Größe der Bilddatei.

Dann braust das mod_gzip einmal über das Bild und macht es kleiner – und sei es nur ein kleines Byte. Der Content-Length Header wird nicht angepaßt, und der Browser glaubt er müsse noch auf fehlende Bytes warten. Das tut er dann, bis der Timeout erreicht ist.

Lösung dafür war dann diese Zeile in der Apache Config, zumindest als vorläufiger Workaround:

SetEnvIfNoCase Request_URI download/file\\.php$ no-gzip dont-vary

Zend Framework 1.5 für PHP 5 veröffentlicht

Geschrieben von everflux am März 17th, 2008

Zend hat das Zend Framework in der Version 1.5 veröffentlicht.
Nachdem der Launch einige Male verschoben wurde, ist jetzt zeitgleich auch eine neue Version der Zend Framework Webseite online. Die Webseite soll dem häufig geäußerten Kritikpunkt Rechnung tragen, dass das Zend Framework für neue Anwender zu wenig auf das optische Erscheinungsbild und Einstiegshilfen Wert gelegt hat.
Dies schlägt sich nun in neuen Quick Start Tutorials und Webcasts nieder, sowie einer „Web 2.0“ Optik der Webseite.
Weiterlesen »

PHP Basic Authentication und FastCGI mit Apache2

Geschrieben von everflux am Februar 25th, 2008

PHP, Apache2 und FastCGI bringt neben ein paar Annehmlichkeiten einen Haufen Probleme mit. So funktioniert z.B. die gewohnte WWW-Authenticate „Basic Authentication“ nicht mehr wie gewohnt.
Das wird durch verschiedene Faktoren bestimmt:
Das mod_fastcgi muss so konfiguriert werden, dass die entsprechenden Header weitergereicht werden. Bei Apache 1 ist es HTTP_AUTHORIZATION – Apache2 verwendet den standardkonformen „Authorization“ HTTP Header.
Dafür sieht dann die FastCGI Konfiguration etwa so aus:

FastCgiConfig -pass-header Authorization -pass-header HTTP_AUTHORIZATION

PHP – zumindest in der aktuellen Version – wertet diesen Header offenbar nicht aus.
Dazu bedarf es dann eines kleines PHP Snippets als Workaround. Oder Zend behebt das Problem mal.

if (isset($_SERVER['Authorization']) && !empty($_SERVER['Authorization']))
{
    list ($type, $cred) = split (" ", $_SERVER['Authorization']);

    if ($type == 'Basic')
   {
        list ($user, $pass) = explode (":", base64_decode($cred));
        $_SERVER['PHP_AUTH_USER'] = $user;
        $_SERVER['PHP_AUTH_PW'] = $pass;
    }

}

Der Rest funktioniert dann wie gewohnt.

Zend Framework – 1.0.2

Geschrieben von everflux am November 4th, 2007

Zend hat das Zend Framework für PHP 5 in Version 1.0.2 herausgebracht. Viel neues ist auf den ersten Blick nicht zu finden, vor allem Bugfixes und Performance Verbesserungen bei der Suche springen ins Auge.
Die Dokumentation der PDF Klassen und der Zend Framework Rahmenanforderungen hat Zend nach eigenen Angaben ebenfalls verbessert. Für das Zend Framework 1.1 ist unter anderem eine oeberarbeitung des PDF Supports geplant, der in der aktuellen Version noch gravierende Mängel im Vergleich zu anderen PDF Libraries für PHP aufweist.
Wie immer kann man das Zend Framework kostenlos von framework.zend.com herunterladen.


http://everflux.de/
Copyright © 2007, 2008 everflux. Alle Rechte vorbehalten. All rights reserved.