Concrete5 – mehr Speed mit eAccelerator

UPDATE: Die aktuelle eAccelerator Version enthält kein PHP API mehr! Ich eAccelerator deshalb im Zusammenhang mit Concrete5 nicht mehr empfehlen. Die kommende Version 5.4 wird jedoch Unterstützung für APC und memcache haben!

Mehr Geschwindigkeit bei Concrete5? Stellen Sie sicher, dass eAccelerator läuft!

In diesem Tutorial erkläre ich, wie man eAccelerator auf einem Debian Server installiert um bei Concrete5 mehr Geschwindigkeit zu bekommen.

eaccelerator1

Bereits installiert?

Eine Datei mit dem Namen info.php in einem per http zugänglichen Verzeichnis erstellen:

1
2
3
<?php
   phpinfo();
?>

Existiert das Wort “eAccelerator” in der Ausgabe, ist eAccelerator bereits aktiviert. Wenn nicht – weiterfahren..

eAccelerator installieren

Eine Konsole bzw. SSH Verbindung zum Server herstellen und folgende Befehle eingeben
Open a console/ssh connection to your server and enter these commands:

wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
tar xvfj eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
phpize
./configure --with-eaccelerator-shared-memory --with-php-config=/usr/bin/php-config --with-eaccelerator-userid=www-data --with-eaccelerator-content-caching 
make
make install

Eventuell prüfen ob 0.9.5.3 noch immer die aktuelle Version ist.

Prüfen Sie nach dem Ausführen der Befehle, ob irgendwelche Fehlermeldungen angezeigt wurden.

Wenn alles ohne Probleme ausgeführt wurde, ein Verzeichnis erstellen, wo eAccelerator die temporären Dateien ablegen kann:

mkdir -p /var/cache/eaccelerator
chmod 0777 /var/cache/eaccelerator

Nun erstellen wir die Konfigurations-Datei für eAccelerator. Mit vi oder einem beliebigen Editor die Datei erstellen:

vi /etc/php5/conf.d/eaccelerator.ini

Diesen Inhalt eingeben:

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_ttl = "0"
eaccelerator.shm_max = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"

Jetzt kann Apache neu gestartet werden:

/etc/init.d/apache2 restart

Die info.php Seite nochmals öffnen und sicherstellen, dass das Wort eAccelerator nun gefunden wird. Ist dies der Fall, ins Verzeichnis “config” der Concrete5 Seite wechseln und in der Datei site.php diese Zeile einfügen:

define('CACHE_LIBRARY', 'eaccelerator');

Concrete5 öffnen!




14 Comments

I was wondering if the same is written for the Zend Optimizer.

define(‘CACHE_LIBRARY’, ‘eaccelerator’);

There is also a problem with the Anti Spam word. It’s not showing the complete word and is cutting the last 3 letters off. I am using the latest version of firefox.

Hi Remo,

dank Dir für diesen Tipp.. wir haben eAccelerator heute, entsprechend Deiner Anleitung, auf unseren Servern installiert und es hat Wunder bei Zugriffszeiten und Serverlast bewirkt..

..die Freude hat leider nicht lang angehalten, leider mussten wir feststellen dass sich das Dashboard nicht mehr öffnen lässt.. bei einer Seite kommt der beschriebene “Fatal error: Call to undefined method Cache::disablecache() in /xxx/xxx/concrete/libraries/update.php on line 25” ..bei allen anderen lädt er einfach gar nichts..

..allerdings setzen wir keine SVN-Version ein, sondern die 5.3.3.1 stable..

..weisst Du ob es sich lohnt dem Fehler weiter auf den Grund zu gehen.. oder vertragen sich C5 und eAccelerator einfach doch nicht..?

..das wäre sehr schade, da es genau das ist was C5 noch fehlte, etwas mehr speed..

Gruß

dom

Sorry, ich hab das Tutorial aktualisiert. Das Problem ist, dass die Leute von eAccelerator in der aktuellsten Version die PHP API entfernt haben. Sie wollen so die Wartung verbessern – wird sicherlich helfen – allerdings kann man aus PHP Scripts nicht mehr auf den Cache von eAccelerator zugreifen. Das ist leider ein unglücklicher Zufall – Sorry!

Die kommende Version von Concrete5 wird jedoch APC und memcache unterstützen. Bisher hab ich mit Single Server Seiten bei APC bessere Ergebnisse erzielt, hab meine Tests aber noch nicht abschliessen können.

Mehrere Seiten auf einem Server ist ja kein Problem. Wenn du skalieren willst, würde ich jedoch memcache anschauen da du den auf einen zweiten Server verschieben könntest um ihn anschliessend von mehr als einem Webserver anzusprechen.
Bei meinen Tests hab ich jedoch die besseren Ergebnisse mit APC erreicht, konnte die Tests aber nicht wirklich abschliessen…

Thanks for the quick response. Any chance you would be able to do really simplified walk through on how to do this? From the puTTY download to the eAccelerator install? Or, would I be able to figure it out after downloading puTTY and then following these directions?

There’s really not much to do, open putty, enter the name of the server, enter the username from your linux server, enter the password and enter all the commands you’ve seen above.

But please be careful, working on a linux console without having any knowledge of *nix can be a bit tricky and dangerous, especially if you work with “root”.

In case you’re working with concrete5, you’ve seen that eAccelerator isn’t really supported anymore? You should look at something like APC!

Hinterlasse eine Antwort

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