Apache, fcgid und HTTP Authentifizierung mit PHP

Geschrieben von everflux am August 16th, 2008

Gott, ich hasse schlecht dokumentierte Software! Ein echter Krampf sind die FastCGI und fcgid Module. fcgid sollte als (binärkompatibler) Nachfolger in die Fußstapfen des kaum gepflegten FastCGI Moduls treten. Das hat es sicherlich in mehrfacher Hinsicht geschafft: Die fcgid Webseite ist zum fürchten und sieht alles andere als professionell aus. Die Dokumentation ist eher dürftig und sinnvolle Beispiele für aktuelle Anwendungsfälle fehlen. (Rails, PHP, …)

Weiterlesen »

Netbeans 6.5 Milestone 1 PHP, Groovy, Glassfish und mehr

Geschrieben von everflux am Juli 10th, 2008

Netbeans 6.5 Milestone build 1 ist verfügbar (www.netbeans.org). Die Liste der neuen Features und Updates macht wirklich neugierig!

Unter anderem hat Netbeans verbesserten JavaScript Support (incl. JavaScript Debugger), Groovy und Grails werden von Haus aus unterstützt, und auch PHP ist jetzt direkt mit von der Partie. Weiterlesen »

Zend Framework: Ein eigener Validator

Geschrieben von everflux am Juli 8th, 2008

Das Zend Framework kommt mit vielen Fertigklassen – sozusagen „batteries included“. Jedoch für folgende Konstellation habe ich nichts gefunden: Ein Kontaktformular, das durch Zend Form und Zend Validate unterstützt wird, und bei dem entweder die E-Mail Adresse oder die Telefonnummer mindestens ausgefüllt sein muss. (Und natürlich valide sein muss)

Grund genug, sich mit dem Zend Framework etwas vertrauter zu machen, und einen eigenen Validator zu entwickeln, der genau diese Situation abdeckt. Weiterlesen »

WordPress Seiten statisch cachen und Server entlasten

Geschrieben von everflux am Juli 6th, 2008

In den Zeiten vor WordPress 2.5 gab es das „wp-cache“ Plugin. Die Idee: Wenn sich an einer Seite nichts ändert, gibt es eigentlich keinen Grund, die Datenbank zu quälen.

Richtig gedacht! Das WordPress Cache Plugin war sehr beliebt – doch seit WordPress 2.5 haben einige User Probleme und Ärger gehabt. (Das lag wohl vor allem an konflikten wer genau für gzip Kompression zuständig sein sollte – kann ich ja auch ein Lied von singen.) Weiterlesen »

Google Desktop dreht durch

Geschrieben von everflux am Juni 17th, 2008

Google Desktop Suche – auch bekannt als „Mozilla/4.0 (compatible; Google Desktop)“ kann wohl ganz schön wild werden, wenn es darum geht, merkwürdige Daten zu verdauen. Weiterlesen »

PHPRaider phpbb3 Remote Exploit

Geschrieben von everflux am Mai 25th, 2008

PHPraider ist eine Verwaltungs Software für „Raids“. Raids sind Schlachten bzw. Raubzüge die im Zuge von World of Warcraft (Wow) häufig stattfinden.

Zur einfachen Koordination gibt es phpraid, auf WoW Clan bzw. Team Seiten wird es gerne mit dem ebenfalls in PHP programmierten phpBB gerne eingesetzt. Offenbar gibt es in genau dieser Konstellation phpraid und phpbb3 eine schwerwiegende Sicherheitslücke: Die Variable pConfig_auth[phpbb_path] kann von außen überschrieben werden. Weiterlesen »

Netbeans JavaScript Support, PHP und andere Features

Geschrieben von everflux am Mai 19th, 2008

Wer Netbeans 6.1 gerne mit JavaScript und PHP Support testen möchte, der sollte beim Download darauf achten, die richtige Version zu laden („all“). Weiterlesen »

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 »

AMD 64 Java 6 crashes – Workaround und Lösungen

Geschrieben von everflux am April 23rd, 2008

Bereits seit Wochen Monaten gibt es nun das Problem, dass Java 6 ab Update 4 nicht mehr stabil auf AMD64 Plattformen läuft.

Die JVM crasht – und zieht natürlich die laufende Anwendung, wie z.B. Eclipse unter Java, mit in den Tod. Ein funktionierender Workaround ist tatsächlich den Hotspot Java Optimizer/Compiler zu deaktivieren, dazu ist das Programm/Java mit „-Xint“ zu starten. (Bei Eclipse geht das dann so: eclipse -vmargs -Xint)

Wirklich behoben zu sein scheint das Problem mit Java 6 Update 10 – derzeit ist diese Version im beta Stadium. Java 6 U10 wird auch die erste Version mit dem neuen modularen Java Kernel Konzept sein.

Wer das ganze testen möchte, findet auf der Homepage des Java Early Access program den entsprechenden Download von Java 6 Update 10 beta.

Für Ubuntu ist der Austausch folgendermaßen zu bewerkstelligen:

  1. Download der Datei.
  2. Kommandozeile öffnen
  3. bash jdk-6u10-beta-linux-x64.bin
  4. Lizenz (lesen und) bestätigen
  5. in /usr/lib/jvm das ausgepackte Archiv unterbringen
  6. den Link von java-6-sun auf das neue Archiv umbiegen (rm java-6-sun; ln -s jdk1.6.0_10 java-6-sun)

Fertig. Viel Erfolg beim beta testen.

Update:
Sun ist wohl hinter die Ursache gekommen, auch wenn sich der entsprechende Bugreport so ließt als müsse man erstmal Compilerbau gehört haben. Wie so oft gibt es auch nicht nur den einen Bugreport, sondern z.B. auch diesen – aber immerhin es sieht so aus, als sei eine Lösung in Sicht. Und der Bug schon lange – schlummernd – in der Java Codebasis.
Update 2:
Eine weitere Lösung stellt die Verwendung der IBM Java VM dar. Die gibt es inzwischen – endlich – auch als Java 6 Version und für 64 Bit Windows/Linux Rechner. Bei IBM ist für den Java Download eine Registrierung erforderlich. Die Nutzungsbedingungen sind u.U. andere als bei Sun. IBM Java Download.

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


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