1. Was ist eAccelerator

eAccelerator ist eine freie Open-Source PHP Optimierungssoftware. Sie verbessert die Geschwindigkeit von PHP Skripten durch Zwischenspeicherung im kompilierten Zustand. Hierdurch soll die Auslastung des Servers als auch die Geschwindigkeit der Scripte um das 1-10fache gesteigert werden.

2. Installation

Zunächst besorgen wir uns die aktuelle Version von http://www.eaccelerator.net/. Zum Zeitpunkt des Tutorial war dies 0.9.5.2. Weiterhin ist zu beachten das dieses Tutorial für Debian Etch geschrieben wurde.

cd /usr/local/src/
wget http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.2.tar.bz2

Nun folgt das entpacken des Archives.

tar jxvf eaccelerator-0.9.5.2.tar.bz2
rm eaccelerator-0.9.5.2.tar.bz2

Wir wechseln nun in das Verzeichniss des entpackten Archives.

cd eaccelerator-0.9.5.2

Für die weitere Installation setzen wir nun kurz eine Variable.

export PHP_PREFIX="/usr"

2.1 Installation für PHP5

eAccelerator muss speziell für beide PHP Versionen Kompiliert werden. Daher ist es nötig dieses für beide Versionen (PHP4 & PHP5) zu wiederholen. Weiterhin ist zu beachten das bei Upgrades der PHP Versionen eAccelerator neu kompiliert werden muss.

$PHP_PREFIX/bin/phpize5
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config5

Nun muss nur noch das Modul in das PHP Extension Verzeichnis kopiert werden. Dies geschieht durch:

make install

Um nun das Modul zu laden erstellen wir hierfür eine Konfigurationsdatei:

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

Diese füllen wir mit folgendem Inhalt und speichern sie anschließend. Natürlich ist zu beachten das die Variable 'zend_extension' korrekt gesetzt ist.

zend_extension="/usr/lib/php5/20060613/eaccelerator.so"
eaccelerator.shm_size="16"
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"

2.1 Installation für PHP4

Die Installation für PHP4 erfolgt eigentlich zu 99% so wie bei PHP5. Bevor jedoch überhaupt hiermit begonnen werden kann, muss folgender Befehl ausgeführt werden.

make clean

Wie bereits beschrieben, erfolgt die Installation nahezu identisch.

$PHP_PREFIX/bin/phpize4
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config4

Kopieren des Moduls

make install

Erstellen der Konfigurationsdatei

vi /etc/php4/conf.d/eAccerlerator.ini

Füllen mit folgendem Inhalt:

zend_extension="/usr/lib/php4/20050606/eaccelerator.so"
eaccelerator.shm_size="16"
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"

2.3 Einbinden in ispCP

Grundsätzlich legt eAccelerator die Kompilierten Dateien in /tmp ab. Meiner Meinung nach ein etwas unsicheres Verhalten. Aus diesem Grund setzen wir das Verzeichnis auf das /phptmp Verzeichnis der jeweiligen Domain. Hierzu editieren wir folgende Dateien:

/etc/ispcp/fcgi/parts/php5/php.ini
/etc/ispcp/fcgi/parts/php4/php.ini

Am Ende beider Dateien fügen wir nun folgendes hinzu:

[eAccelerator]
eaccelerator.cache_dir = "{WWW_DIR}/{DMN_NAME}/phptmp"

Hierdurch wird nun das Cache Verzeichnis auf das phptmp Verzeichnis der jeweiligen Root Domain gesetzt. Eine Optimale Lösung wäre natürlich das Unterscheiden von Subdomains und Domain Aliase, jedoch ist das nicht möglich da nur eine php.ini für die Hauptdomain existiert. Auch ein setzen über php_admin_value führt zu keinem positiven Ergebnis.

Abschließend ist noch die Neuerstellung der Konfiguration notwendig. Informationen hierzu findet ihr unter Regenerieren der Konfiguration (Eng)