Apache 1.3.37 + PHP 5.2.1 CGI - Binaries für Kernel 2.6 + 2.4
Guten Morgen miteinander!
Erst mal danke an cpq für das Bereitstellen seiner Makefiles und Erfahrungen zu Apache 1.3.37 + PHP 5.2.1 CGI. Weil ich zuletzt ein paarmal darauf angesprochen wurde, habe ich mich mal am Bauen der Binaries für den DS-Mod versucht. Heraus gekommen ist Folgendes:
Kernel 2.6: kleinere Binaries bei identischem Funktionsumfang (anders gestrippt), gebaut mit gcc-4.1.2 + uClibc 0.9.28 für ohio (also nicht ar7, sprich 5050/7050 - wäre aber auch möglich bei Bedarf). Kurz angetestet auf meiner 7170, alles okay soweit.
- Apache (Größe: hier 534 KB statt 667 KB aus Posting #1)
- PHP (Größe: hier 2.850 KB statt 3.411 KB aus Posting #1)
Kernel 2.4: keine Vergleichsgrößen, da bisher nicht für 2.4 verfügbar; gebaut mit gcc-4.1.0 + uClibc 0.9.26 für ohio (also nicht ar7, sprich 5050/7050 - wäre aber auch möglich bei Bedarf). Nicht getestet, wollte nicht extra alte FW drauf flashen.
- Apache (Größe: 519 KB)
- PHP (Größe: 2.823 KB)
Dann habe ich noch kurz mal grob nach dem
Speicherbedarf von Apache 1.3.37 im Vergleich zu AVMs
websrv und zum
httpd der Busybox 1.4.1 geschaut. Dabei habe ich vereinfachend einfach immer geschaut, wie groß der Unterschied des freien Speichers vor und nach Programmstart war (
free an der Befehlszeile). Das sieht in etwa so aus:
- Apache ohne PHP hatte einen Speicherbedarf von 412 bis 520 KB, je nachdem, wie lange er lief und was er machte. Ich hatte allerdings nur eine Seite online, mit mehreren könnte das nach oben gehen. Aber es dient ja nur zur Orientierung.
- AVMs websrv benötigte ca. 635 KB, servierte allerdings auch die komplette Web-UI plus Telefonsparbuch (LCR Updater, Testversion).
- Busybox-httpd brauchte nur 96 KB (Wake-on-LAN-CGI aus dem DS-Mod) bzw. 136 KB (DS-Mod-Web-UI). Allerdings ist httpd ja Bestandteil der Busybox, welche ja auch Speicher braucht, andererseits aber sowieso läuft.
Update 03.05.2007, 02:00: Den
Speicherbedarf von PHP 5.2.1 habe ich auch mal kurz gemessen, indem ich einfach
php -a (interaktiver Modus) aufrief und vorher, während der Session und danach die Werte von
free in einer anderen Shell-Session abfragte. Ergebnis: ca. 900 KB.
Vergleiche zu Langzeit-Stabilität und Performanz habe ich keine gemacht, denn die Binaries sind ja ganz frisch. Grob gesagt, kann Apache zumindest RAM-mäßig gut mit
websrv mithalten, war sogar etwas kleiner, aber mit weniger Seiten. Wem der Busybox-
httpd genügt, der sollte dabei bleiben. Nach Aussage von Christian (cpq) läuft sein Apache 1.3.37 seit Monaten stabil durch und hostet eine Webseite, die sich für mich wirklich performant anfühlt. Das relativiert meine Vorurteile gegenüber dem "großen" Apache auf der "kleinen" Fritz!Box doch ein wenig, und ich würde sagen, daß er durchaus seine Berechtigung hat. Für PHP gilt das nur eingeschränkt, denn erstens ist das Binary sehr groß und zweitens benötigt es ebenfalls entsprechend Speicher und Prozessorzeit (Letzteres nicht geprüft). Da wäre die Kombination (Apache + Lua) oder (Apache + Haserl + Shellskripten) oder gar (Apache + Haserl + Lua) sicher sinnvoller. Haserl und Lua sind im DS-Mod enthalten, falls jemand neugierig ist auf schlankere Skriptsprachen bzw. CGI-Wrapper.
Zu den Dateianhängen: je ein Archiv für Kernel 2.4 und 2.6. Jedes enthält einfach nur die zwei Binaries, welche man einfach in Christians Paket aus Posting #1 einbauen kann. Dann hat man gleich eine minimale Verzeichnisstruktur, ein (anzupassendes)
apache.conf, ein
php.ini und zum Testen ein
phpinfo.php. Ich habe mir nicht die Mühe gemacht, das alles auch nochmal hier einzupacken. Wozu auch? Christian hat das wunderbar vorbereitet. Vielen Dank nochmal dafür und für die Patches.
Update 06.05.2007, 14:45 Die Binaries in
apache_php_static.tar.bz2 sind statisch gelinkt, aber mit meinem ds26-14.4 gebaut (uClibc 0.9.28). Sie sollten auf Kernel 2.4 ebenfalls laufen, da statisch gelinkt. Das Bauen mit ds-0.2.9-p8 für uClibc 0.9.26 (verwendet von den Kernel-2.4-Firmwares) führte zu PHP-Abstürzen.