eAccelerator – kleines Programm mit großer Wirkung. Die schlanke PHP Erweiterung beschleunigt die Ausführung von PHP Code unter dem Apache Webserver. Installationsanleitung für Debian, Ubuntu und Linux Mint.
eAccelerator ist ein Tool, welches die Ausführung des PHP-Codes unter Apache beschleunigt. Der Code wird bereits in kompiliertem Zustand gespeichert, wodurch das Kompilieren bei jeden Seitenaufruf fast gänzlich wegfällt. Der bereits vorkompilierte Code wird im Shared Memory gespeichert und von dort direkt aufgerufen. Außerdem wird die Laufzeit optimiert, um die Ausführung des PHP-Codes zu beschleunigen.
Wichtig ist hierbei immer, dass ihr entsprechende Performance Tests, also Webseiten Benchmarks durchführt, damit man auch die Auswirkung sieht.
Persönliche Erfahrungen mit eAccelerator:
Da wir vor einiger Zeit eine etwas stärker frequentiertere Seite hosteten und wir ziemliche Performanceprobleme hatten, gab mir ein befreundeter Administrator den Tipp eAccelerator auszuprobieren. Ich war erst skeptisch und notierte mir die genauen Ladezeiten der Seite, um nach der Installation von eAccelerator einen Vergleichswert zu haben. Die Performancesteigerung war in meinem Fall nach der Installation ganze 89,5%.
Für eAccelerator gibt es leider keine offiziellen Pakete unter den Sources, darum müssen wir die Software per Hand downloaden und kompilieren. Dieser Schritt ist allerdings nicht allzu schwer:
Voraussetzungen installieren:
Damit wir eAccelerator für das System kompilieren können, sind einige Pakete dafür notwendig, die in „build-essential“ enthalten sind, ausserdem benötigen wir das php5-dev Paket. Dieses installieren wir über folgenden Befehl:
[bash]apt-get install build-essential php5-dev bzip2[/bash]eAccelerator downloaden und entpacken:
Wir holen uns nun die aktuellste Version von eAccelerator bei der Herstellerseite und speichern diese nach /usr/src. Derzeit ist die aktuellste Version 0.9.6.1.
[bash]cd /usr/srcwget http://github.com/downloads/eaccelerator/eaccelerator/eaccelerator-0.9.6.1.tar.bz2[/bash]
Der eAccelerator befindet sich nun gepackt in unserem /usr/src Verzeichnis. Diesen werden wir nun entpacken.
[bash]tar -xjvf eaccelerator-0.9.6.1.tar.bz2[/bash]eAccelerator wurde und erfolgreich in /usr/src entpackt.
eAccelerator kompilieren und konfigurieren:
Mit folgenden Befehlen kompilieren/installieren wir eAccelerator für unser System
[bash]cd eaccelerator-0.9.6.1phpize
./configure
make
make install[/bash]
Nachdem diese Schritte abgeschlossen sind, teilen wir unserem PHP mit, dass wir gerne eAccelerator verwenden möchten. Dazu legen wir eine neue ini Datei in unserem Standard PHP Verzeichnis an
[bash]vi /etc/php5/conf.d/eaccelerator.ini[/bash]Die gerade erstellt eaccelerator.ini befüllen wir nun mit folgendem Standard-Inhalt:
extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
Genaure Informationen zu den Einstellungen findet ihr Hier
Der Wert „eaccelerator.shm_size“ definiert den maximalen Speicher, welchen sich eAccelerator nehmen darf und sollte daher behutsam angepasst werden.
Damit eAccelerator auch die Cachefiles auf unser Festplatte ablegen darf, erstellen wir den Ordner, den wir in der .ini Datei konfiguriert haben (/var/cache/eaccelerator) und vergeben auch die entsprechenden Rechte.
[bash]mkdir /var/cache/eacceleratorchmod 777 /var/cache/eaccelerator[/bash]
Als letzten und abschließenden Schritt starten wir nun unseren Apache neu:
[bash]apache2ctl restart[/bash]oder
[bash]/etc/init.d/apache2 restart[/bash] [sam id=“2″ codes=“true“]eAccelerator Controlpanel aktivieren
Danke an Peter für den Tipp und die Beschreibung für das Controlpanel
Die Datei control.php muss lediglich aus dem Verzeichnis /usr/src/eaccelerator-0.9.6.1 in das Webserververzeichnis kopiert werden:
[bash]cp /usr/src/eaccelerator-0.9.6.1/control.php /var/www/[/bash]Nun editieren wir die Datei control.php…
[bash]vi /var/www/control.php[/bash]…und ändern die Logininformationen, mit denen auf control.php zugegriffen werden kann („admin“ und „eAccelerator“ entsprechend ersetzen)
$user = „admin„;
$pw = „eAccelerator„;
Als Abschließenden Schritt muss dem Controlpanel noch die notwendige Berechtigung gewährt werden, um Daten aus eAccelerator auszulesen und auch Kommandos zu senden. Dazu bearbeiten wir die Datei eaccelerator.ini…
[bash]vi /etc/php5/conf.d/eaccelerator.ini[/bash]…und ergänzen diese um folgenden Eintrag
eaccelerator.allowed_admin_path="/var/www/control.php"
Jetzt noch den Apache neu starten und das Controlpanel kann über http://www.mein-server.org/control.php aufgerufen werden.
Und so sieht das eAccelerator Control Panel dann aus:
eAccelerator deinstallieren / entfernen
Um den eAccelerator wieder sauber zu entfernen werden lediglich die .ini und die .so Datei gelöscht:
[bash]rm /etc/php5/conf.d/eaccelerator.inirm /usr/lib/php5/20090626/eaccelerator.so[/bash]
[eAccelerator] This build of „eAccelerator“ was compiled for PHP version 5.x.x. Rebuild it for your PHP version (5.x.x) or download precompiled binaries.
Wenn ein Update der installierten PHP Version durchgeführt wurde, ist es notwendig den eAccelerator neu zu kompilieren (Wichtig: make clean). Dazu einfach die vorhandene eAccelerator Dateien im Verzeichnis /usr/src verwenden oder neu herunterladen und den Kompilierungsvorgang erneut ausführen:
[bash]cd /usr/src/eaccelerator-0.9.6.1make clean
phpize
./configure
make
make install[/bash]
Einer der wenigen, wirklich hilfreichen Artikel bei Google. Vielen Dank!
Fertige Pakete für Debian Lenny gibt es unter http://www.schnuckelig.eu/blog/debian-lenny-eaccelerator-packages-amd64-20090527 zur Zeit jedoch nur für amd64, i386 folgt noch.
Ich rate eigentlich immer von 3. Repositories bzw. fertig Kompilierten Komponenten ab – vom Sicherheitsaspekt aus!
Es ist zwar nicht besonders schwer, eAccelerator zu installieren, aber es ist trotzdem ein sehr hilfreiches und gutes Tutorial. Danke! 🙂
Vielen dank für die Docu, ist eh einfach eigentlich aber ersparrt einem lange config suche 🙂
Hallo, könntest du noch eine Anleitung posten wie ich das Contropanel von eaccerlator zum laufen bekomme? Die anleitung auf der Eaccerlator Homepage funktioniert nicht so recht. Dankeschön!
Controlppanel? davon habe ich bisher noch nichts gehört. werde mich aber die Tage mal schlauer machen.
Controlpanel
Merci beaucoup für die Anleitung!
die Sache mit dem Controlpanel ist eigentlich ganz einfach:
# Datei „control.php“ aus dem Source-Directory ins htdoc-Directory kopieren
cp /usr/local/src/eaccelerator-0.9.*/control.php /var/www/htdocs
# Authentifikation zu Beginn des Skripts anpassen
vim /var/www/htdocs/control.php
# eaccelerator Konfiguration in der php.ini um folgenden Eintrag ergänzen:
# eaccelerator.allowed_admin_path=“/var/www/htdocs/control.php“
Anschließend lässt sich das Control Panel unter http://www.mein-server.org/control.php aufrufen. Es kann der Cache gelöscht werden sowie besichtigt werden, wieviele und welche PHP-Scripts gecacht wurden.
Beste Grüße, Peter
Hallo Peter,
tolle Sache mit dem Controlpanel. Werde ich gleich heute abend ausprobieren und den Artikel um den Bereich ergänzen!
Vielen Dank für deine Mühe, dadurch lebt ein Blog – durch die Leser!
Patrick
Hi, mittlerweile gibt es eaccelerator bereits in Version 0.9.6 …
Ja, Danke für die Info.
Neue Stable Version ist 0.9.6 welche nun auch die PHP Version 5.3 unterstützt.
Werde ich mir die Tage mal ansehen und den Artikel ggf. anpassen.
Alle Infos vorab gibts hier: http://eaccelerator.net/wiki/Release-0.9.6
Ich habe eine vServer auf dem ispCP läuft und habe eben die neue Version installiert und es kam bei mir ein 500er Fehler. Woran kann das liegen?
Viele Grüße
Veolore
Hi Veolore,
ich kenne leider ispCP zu wenig, als dass ich irgendwelche Vermutungen anstellen würde. Lief der Kompiliervorgang erfolgreich durch, und ist das Cache Verzeichnis auch beschreibbar?
Gruß
Patrick
Über welches Programm muss ich die befehle eingeben?
Ich habe es schon mit cmd probiert aber ich verstehe alles wie es funktioniert natürlich nur schriftlich leider noch nicht praktisch aber wo muss ich das eingeben?
MfG: Killer95
Hallo Killer95,
dir ist schon bewusst das der Guide auf Linux speziell auf Debian/Ubuntu bezogen ist und nicht auf Windows?
gruß
Patrick
ok danke für die mitteilung aber wie installiere ich es dann auf windows da muss ich doch auch solche befehle ausführen
Sehr gutes Tutorial, wir haben vorher den Zend Encoder benutzt, der bringt zwar ca. 20% mehr Performance als eA, aber der Lizenzpreis spielt bei uns neuerdings auch eine Rolle. Drum haben wir uns für eA entschieden und sind sehr glücklich damit.
Die Anleitung war sehr hilfreich und das Ergebnis hat sehr gut gefruchtet. 😉
Vielen Dank für diese wunderbare Anleitung. Vor allem, weil ich mir nie alles merken kann und daher immer wieder komme freue ich mich besonders über diese Ergänzung.
Super TUT
nur habe ich ein Problem, ich bin genau nach anleitung vorgegagen und, aber am ende wenn ich die http://meineIP/confrol.php aufrufen möchte bleibt die Seite weiss
Apache habe ich neun gestartet habe sogar ein reboot des V-Servers vorgenommen nur bleibt die seite weiss
Hallo Cyberman,
dein Standard Webserver Verzeichnis ist sicher auf /var/www ?
Gruß
Patrick
Hallo!
wie deinstalliere ich eaccelerator wieder, hab es nach dieser Anleitung installiert!
Danke!!!!
Hallo Jens,
um eaccelerator wieder zu deaktivieren reicht es bereits die Config File zu löschen: /etc/php5/conf.d/eaccelerator.ini
Dann musst du nur noch die gecachten Files (/var/cache/eaccelerator) löschen und ggf. die eaccelerator.so im (/usr/lib/php5/*/eaccelerator.so)
Gruß
Patrick
Hey Patrick,
vielen Dank, genau danach habe ich gesucht. Immer wieder schön einen Blog zu finden in dem man Infos findet und auch gerne wiederkommt ;)!
Grüße
Ja, das Standartverzeichnis ist /var/www/
hallo alle zusammen, scheint ein super Tool zu sein und erst recht eine super Anleitung. leider komme ich nicht bis zum Ende. control.php kann aufgerufen werden, aber wenn ich dort etwas mache, dann erscheint
Warning: This script isn’t in the allowed_admin_path setting! in /vrmd/homepages/u123456/eaccelerator/eaccelerator-0.9.6.1/control.php on line 285
Die phpinfo.php sagt eaccelerator.allowed_admin_path no value no value, irgendwie habe ich das Gefühl, das evt meine eaccelerator.ini welche in /vrmd/homepages/u123456/eaccelerator/eaccelerator-0.9.6.1 liegt nicht genommen wird. Bitte gebt mir doch mal einen Tip.
Gruß
Micha
Tja was solll ich sagen….man lernt nicht aus!
Das mit der „control.php“ war mir neu aber ist ja mal richtig fein!
Vielen Dank dafür
Hallo,
tolle website und Anleitunge, die besten die ich bisher gefunden habe!! Kudos!
Nur mit dem eAccelerator habe ich irgendwie Probleme. Alle Schritte korrekt ausgeführt, aber im Control.PHP erscheint nur
„http://149.154.159.105/control.php“ ;-( Mal Fehlersuchen ausser jemand hatte das gleiche Ergebnis (hatte keine Fehlermeldungen bei der Installation)
Klasse Beitrag! Bei ISPConfig3 + PHPfcgi + eAccelerator 0.9.6.1 kahm es bei mir zu einem open_basedir Fehler. Habe bereits die Lösung gefunden, vieleicht kanns ja jemand gebrauchen:
Fehlermeldung:
open_basedir restriction in effect. File() is not within the allowed path(s)
Lösung:
Kompilieren ohne eaccelerator-use-inode
->(./configure –enable-eaccelerator=shared –without-eaccelerator-use-inode)
Geht auch ohne Probleme nachträglich. Einfach die Dateien löschen, der Anleitung auf dieser Seite folgen und bei ./configure die Parameter mit angeben…