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.
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
Does not work for admin panel with such error.
Fatal error: Call to undefined method Cache::disablecache() in /xxx/xxx/concrete/libraries/update.php on line 25
My concrete5 is 5.3.1.
Yes, this seems to be a problem with vertain Versions of Concrete5. I’ve reported this bug here http://www.concrete5.org/community/bugs/method_disablecache_doesnand039t_exist
Try removing “define(‘CACHE_LIBRARY’, ‘eaccelerator’);” until this has been fixed. Concrete5 won’t use eAccelerator to cache the internal objects, but eAccelerator will still improve the php performance overall.
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.
Oops 🙂
What I meant was does this:
define(’CACHE_LIBRARY’, ‘eaccelerator’);
become this:
define(’CACHE_LIBRARY’, ‘zend’);
@Sam: No there’s no support for zend, but if it has a similar API (set and get objects) it quite easy to implement.. But since I’ve never worked with Zend, I can’t help you with it.
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.
..ah ok.. dank Dir für den Tipp.. na dann werden wir uns doch auch mal APC und Memcache anschauen.. unsere Server beherbergen allerdings jeweils mehrere Seiten..
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…
How do I “Open a console/ssh connection”?
Paul, you need some *nix know how for this. There’s a command line tool called “ssh” on almost every *nix system. For those who work with windows, there’s putty which is quite a nice tool as well!
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!
I am working with C5. I’ll check out APC. Thanks.