Home / WebServer / Apache / eAccelerator – PHP Beschleuniger Installation unter Debian (squeeze)+(wheezy) und Ubuntu
PHP Logo

eAccelerator – PHP Beschleuniger Installation unter Debian (squeeze)+(wheezy) und Ubuntu

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.

So wie es derzeit aussieht wird eAccelerator nicht mehr aktiv weiterentwickelt und die Kompatibilität zu PHP 5.4 lässt sehr zu wünschen übrig, deshalb rate ich den Zend OPcache als PHP Beschleuniger zu verwenden

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/src
wget 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.1
phpize
./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/eaccelerator
chmod 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.ini
rm /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.1
make clean
phpize
./configure
make
make install[/bash]
3.4/5 - (5 votes)

Auch cool

Linux richtig anwenden: Tipps und Tricks für eine optimale Erfahrung

Die Kombination aus Spiele-Plattformen, und dem Betriebssystem Linux mag auf den ersten Blick ungewöhnlich erscheinen. …

28 Kommentare

  1. Einer der wenigen, wirklich hilfreichen Artikel bei Google. Vielen Dank!

  2. 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.

  3. Es ist zwar nicht besonders schwer, eAccelerator zu installieren, aber es ist trotzdem ein sehr hilfreiches und gutes Tutorial. Danke! 🙂

  4. Vielen dank für die Docu, ist eh einfach eigentlich aber ersparrt einem lange config suche 🙂

  5. 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!

  6. 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

  7. Hi, mittlerweile gibt es eaccelerator bereits in Version 0.9.6 …

  8. 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

  9. Ü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

  10. ok danke für die mitteilung aber wie installiere ich es dann auf windows da muss ich doch auch solche befehle ausführen

  11. 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. 😉

  12. 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.

  13. 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

  14. Hallo Cyberman,

    dein Standard Webserver Verzeichnis ist sicher auf /var/www ?

    Gruß
    Patrick

  15. 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

  16. 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

  17. Ja, das Standartverzeichnis ist /var/www/

  18. 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

  19. 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

  20. 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)

  21. 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…