Server beschleunigt – eAccelerator

Mein virtueller Server zählt leider nicht zu den schnellsten, erst recht mit zwei WordPress-Blogs, zu denen auch dieser hier gehört. Nun bin ich vor kurzem auf das Apache PHP-Modul eAccelerator gestoßen, welches versucht, den PHP-Server Apache weitestgehend zu optimieren, zu komprimieren, zu cachen und zu beschleunigen. Heute habe ich es gewagt und auch meinen Server damit ausgestattet.

Besonders geholfen haben mir dabei die folgenden Seiten:

Jetzt hoffe ich, es hat etwas gebracht, das Modul läuft jedenfalls mit Erfolg.

Jetzt heißt es abwarten und Tee trinken und sehen, ob es eine Besserung gibt. :carefree:

Hier eine kleine Anleitung für einen Server mit SSH-Zugriff:

Ausstattung:

  • Open SUSE 11.0 (Update: ebenfalls getestet mit Debian Lenny/Squeeze)
  • PHP 5
  • Apache 2

Vorbereitung:

Es wird das PHP-Development-Paket benötigt, um ein neues Modul installieren zu können und phpize ausführen zu können. Dazu einfach php-devel installieren, z.B. über zypper oder Yast bzw. apt-get oder aptitude.

OpenSUSE: zypper in php-devel

Debian: apt-get install php5-dev

Installation:

Zunächst muss der eAccelerator heruntergeladen werden. Dazu einfach per wget laden

wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.zip

und entpacken

unzip -x eaccelerator-0.9.6.1.zip

danach das Verzeichnis wechseln

cd eaccelerator-0.9.6.1

Nun folgt die eigentliche Installation, es wird kompiliert und PHP wird vorbereitet

phpize

./configure (Hinweis siehe Update 2)

make

make install

Nun benötigen wir noch ein Verzeichnis, zum Cachen der Daten. Dazu eignet sich z.B. ein Verzeichnis in /var/cache/eaccelerator

mkdir /var/cache/eaccelerator

chmod 0777 /var/cache/eaccelerator

Jetzt wird das Modul in der Konfiguration von PHP eingebaut:

cd /etc/php5/apache2

nano php.ini

Und folgenden Inhalt einfügen

extension=“eaccelerator.so“
eaccelerator.shm_size=“16″
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″

Nun muss nur noch der Server gestartet werden

/etc/init.d/apache2 restart

Update 1:

Nach einem Update, beispielsweise von PHP, kann es nötig sein, den eAccelerator neu zu kompilieren. Zu erkennen ist dies, wenn in der phpinfo() der eAccelerator zwar noch aufgeführt ist, aber alle seine Parameter auf false eingestellt sind. Auch zu erkennen ist dies in der error.log von Apache2. Dort wird dann eine entsprechende [notice] angezeigt. Zum neu komplieren, einfach die oberen Schritte des entpackens über phpize bis make install wiederholen. ;-)


Update 2:

Sollte es nach der Installation und Aktivierung von eAccelerator zu einem Datenbankfehler auf seinen Webseite kommen, der so aussieht:

PHP Fatal error:  Can’t load *, open_basedir restriction. in Unknown on line 0.

Dann muss man beim Kompilieren anders vorgehen. Einfach erneut kompilieren und bei ./configure einen Parameter benutzen:

./configure –without-eaccelerator-use-inode

Danke für den Hinweis an Blogspan.net.

PG

Felix

 – Autor des Artikels

4 Reaktionen auf “Server beschleunigt – eAccelerator

  1. Miki sagt:

    Angst! :blush: Miki hockt da ja auch drauf! Sichern! Auweia! Naja, ich verlass mich da voll auf dich! :geek:

  2. Marc sagt:

    Neben dem flotteren ausführen des Codes gefällt mir bei eA besonders, dass der Speicherverbrauch deutlich sinkt.
    Ok, ich war noch nie wirklich an den Grenzen – aber kenne zahlreiche Blogs, die schon diesbezügliceh Fehlermeldungen hatten…

  3. Felix sagt:

    @Marc

    Also bisher habe ich ebenfalls das Gefühl, dass der Server und die daraufbefindlichen Seiten zumindest etwas beschleunigt wurden. Ich werde das noch in den Augen behalten, was Google Webmaster Tools dazu sagt… ;-)

  4. […] Server beschleunig – eAccelerator (2010) […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

:alien: :angel: :angry: :annoyed: :left: :right: :blush: :carefree: :cool: :cry: :devil: :laughdevil: :fools: :geek: :hay: :innocent: :laugh: :love: :shock: :offended: :sad: :sick: :unhappy: :silly: :smile: :speechless: :supershock: :-o :teasing: :wink: :zombie: :zzz: :-* xD :nomnomnom: :oh: :ghost: :teddy: :fussball: :ubuntu: :piratenpartei: