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.
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.
Angst!
Miki hockt da ja auch drauf! Sichern! Auweia! Naja, ich verlass mich da voll auf dich!
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…
@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…
[…] Server beschleunig – eAccelerator (2010) […]