PHP


Jeder kennt das Problem, in Australien gehostete Webseiten laden zum Beispiel in Europa langsam und umgekehrt. Oder aufgrund eines besonderen Artikels der in der Fachpresse erwähnt wird, bricht der Webserver aufgrund der auf Ihn eindrosselnden Requests zusammen. Dies sind nur zwei Beispiele für den Einsatzzweck sogenannter Content Delivery Networks.Bisher waren CDNs eher für den kommerziellen Markt gemacht, einer der Marktführer darunter namens Akamai könnte mittlerweile jedem ein Begriff sein. Die Frage die sich stellt – gibt es sowas auch für mich, und zwar gratis? Ich habe mich auf die Suche begeben und bin beim Corel Network fündig geworden. CorelCDN bietet die Möglichkeit, jede URL durch Anhängen des Suffixes “.nyud.net” an den Hostnamen des Servers, also in etwas wie “http://www.beispiel.de.nyud.net/index.html”, eine Seite zu “coralisieren”. Praktisch ist dies auch um Leitungskapazität bei zum Beispiel großen Dateien zu sparen, welche man zum download anbietet, da die Corel Caches die Dateien zwischenspeichern (cachen).

Weiter Informationen zu CorelCDN gibts unter http://www.coralcdn.org/ und ein entsprechendes WordPress-Plugin unter http://theblogthatnoonereads.tunasoft.com/2006/02/12/coralize/

Everyone knows the problem, websites hostes in australia load slow in europe and vice versa, or you’ve got a special article on your site which has been mentioned in press and now your server suffers from the load that is placed on it. These are only two examples for the need of Content Delivery Networks. Until now, CDNs were available to the commercial market only, one of the market leaders, Akamai, should be known by anyone. The question that I got was – is something like this available for me, and for free? I started my search and discovered Corel Network. CorelCDN provides the functionality to “coralize” every URI by adding the suffix “.nyud.net” to the hostname of the server, like “http://www.example.com.nyud.net/index.html”. This is also usable to lower the bandwith usage of your server, because the content is cached by the worldwide caches of CorelCDN, a must have for downloads on your page.

Further informations about CorelCDN are available at http://www.coralcdn.org/ and a corresponding worpdress plug-in athttp://theblogthatnoonereads.tunasoft.com/2006/02/12/coralize/

Im Rahmen eines Projektes lautete die Kundenanforderung, ein Reverseproxysystem zur Verfügung zu stellen, welches dahinterliegende Webanwendungen mit einer eigenen autonomen Benutzerverwaltung schützt. Im ersten Augenblick eigentlich ein Fall für die diversen Autorisierungsmodule des Apachen. Jedoch sollte zum einen der Login nicht dieses übliche “Unauthorized” Kästchen des jeweilgen Browsers sein, sondern eine hübsche Anmeldeseite. Außerdem sollte es nicht möglich sein über einen direkten Link auf die Seite ohne Anmeldung zuzugreifen.

Da mir keine Möglichkeit bekannt ist, dies mit den Standardmodulen zu realisieren, hab ich mich auf der Suche nach einer Lösung gemacht, und bin fündig geworden. Das entsprechende Apache2-Modul nennt sich ‘mod_auth_form’ und liegt leider nicht bei den Standardmodulen des Apachen dabei.


‘ mod_auth_form’ basiert auf mod_auth_mysql und mod_auth_sim. Ein Auszug der Funktionsweise in Englisch von der Projekthomepage:

The mechanics of the module works in the following way. A web client (user) requests for a restricted page/directory. The module sends back a ‘Page Has Moved’ error, pointing the client to the page containing a login form. Through server-side scripting, a session is created in the MySQL database and the client (i.e. cookies or query string). The session itself consists of a unique, random, and temporary ID that is associated with a user. The client then makes the same request along with the session ID (SID) and the user ID (UID). The module compares and validates the two IDs against the IDs stored in the MySQL database. If successful, the module sends back the requested page; otherwise, the module once again sends back the ‘Page Has Moved’ error page. In addition (if specified), the module will also validate the user’s group membership and act accordingly.

Bei Gelegenheit poste ich eventuell demnächst mal ein Tutorial zum Einsatz. Da es das Modul nicht als RPM gibt, habe ich mal eins für Fedora 8 erstellt, welches nachstehend zum Download bereit steht.
mod_auth_form-2.05-1.NWE.fc8.i386.rpm

Nachdem bald mal wieder das ein oder andere PHP Projekt ansteht, habe ich mich mal auf die Suche nach ein paar Arbeitserleichterungen gemacht.

Doctrine


Die eine Erleichterung über die ich gestolpert bin, nennt sich Doctrine. Doctrine ist ein ORM (object relational mapper) für PHP 5.2.x und sitzt auf einem leistungsstarken DBAL (database abstraction layer). Mit Doctrine kann man sozusagen mit einer Datenbank in Objekten anstelle von Skalaren sprechen. Ich werde mir die Sache mal genauer ansehen, und vielleicht bei dem ein oder anderen Projekt verwenden.

CodeIgniter

Die zweite Erleichterung nennt sich “CodeIgniter” und nennt sich selbst ein leistungsstarkes PHP Framework. Im Gegensatz zu PEAR scheint die ganze Angelegenheit nicht ganz so aufgebläht. Auch dies werde ich mir wohl demnächst mal zu Gemüte führen, ich bin mir sicher, damit lässt sich eventuell einiges an Arbeit sparen.

NonPlusUltra

Perfekt wäre es natürlich wenn man beide Komponenten sauber miteinander verbinden könnte, auch dies gilt es jedoch erst herauszufinden. Sobald ich über alles genau Bescheid weiß, gibts hier sicher wieder Neuigkeiten.

Links