Eaccelerator

Aus Wiki
Zur Navigation springen Zur Suche springen

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.

PHP eaccelerator.jpg

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