Eaccelerator
Allgemeines
Der PHP-Beschleuniger eaccelerator analysiert PHP-Skripte und legt diese in kompilierter Form in einem internen Cahce ab, sodass diese in Zukunft deutlich schneller zur Verfügung stehen. Dies hat vor allem auf relativ langsamen Servern wie der NSLU den Vorteil, dass Webseiten mit PHP - wie z.B. der → Webmailer oder das → Wikisystem - deutlich schneller aufgebaut werden.
Insatllation
Die Installation verläuft einfach und unspektakulär:
ipkg update ipkg install eaccelerator
Konfiguration
vi /opt/etc/php.d/eaccelerator.ini
Da der Speicher auf der NSLU ohnehin recht knapp ist, sollte die Kompressionsstufe auf 9 (Maximum) erhöht werden.
eaccelerator.compress_level = "9"
Apache neustarten:
/opt/etc/init.d/S80apache
Funktionstest
Webbrowser starten und http://IP_der_NSLU/phpinfo.php eingeben (siehe auch → Test des Webservers).
PHP-Test und Informationsseite erscheint.
Seite durchscrollen, bis der eaccelerator Bereich erscheint.
Check: Cached Scripts- Wert muß >0 sein
Zusätzlicher Check: Apache Logfile:
vi /opt/var/apache2/log/error_log
Falls im Logfile "could not lock" Einträge vorhanden sind und oder Cached Scripts=0, dann ist die installierte Version von eaccelerator von einem Bug betroffen, der in einigen per Optware installierten eaccelerator Versionen auftritt → Workaround durchführen.
Falls diese Probleme nicht auftraten: eaccelerator Einrichtung finished
Workaround
Als Workaround wird der eaccelerator manuell kompiliert und installiert
Voraussetzung:
→ C-Compiler ist installiert und eingerichtet.
Zum compilieren sind die dev- Files der php Installation notwendig:
ipkg install php-dev
Nun wird der Beschleuniger entfernt:
ipkg remove eaccelerator
Webserver Apache neustarten, um die Änderungen (eaccelerator deinstalliert) zu übernehmen:
/opt/etc/init.d/S80apache
Jetzt wird ein Arbeitsverzeichnis zum kompilieren angelegt:
mkdir /work
und wechseln gleich dort hin:
cd /work
Quellcode des aktuellen eaccelrator downloaden:
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
(auf der Projektseite [1] des eaccelerator aktuelle Version ermitteln und Pfad evtl. anpassen)
Das Paket entpacken:
tar vxf eaccelerator-0.9.5.3.tar.bz2
Ab in das Buildverzeichnis:
cd eaccelerator-0.9.5.3
Folgende Befehle eingeben, zum konfigurieren:
phpize ./configure --prefix=/opt --with-eaccelerator-userid=nobody
Das kann einwenig dauern. Wenn alles fehlerfrei durch ist, kann das Programm kompiliert werden:
make
Danach der obligatorische install:
make install
Um die Scriptfiles nicht manuell anlegen zu müssen, wird hier zu einem kleinen Trick gegriffen. Eaccelerator wird erneut aus den Optware-Quellen installiert und anschließend mit der kompilierten Version ersetzt.
ipkg install eaccelerator
Überschreiben des fehlerhaften moduls mit dem neu kompilierten:
cp /work/eaccelerator-0.9.5.3/modules/eaccelerator.so /opt/lib/php/extensions/eaccelerator.so
Rechte anpassen:
chmod 755 /opt/lib/php/extensions/eaccelerator.so
Alte Apache Logdatei löschen:
rm /opt/var/apache2/log/error_log
→ Konfiguration wiederholden.
Webserver Apache neustarten, um die Änderungen (eaccelerator deinstalliert) zu übernehmen:
/opt/etc/init.d/S80apache