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.3. 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.3/eaccelerator-0.9.5.3.tar.bz2
Nun folgt das entpacken des Archives.
tar jxvf eaccelerator-0.9.5.3.tar.bz2 rm eaccelerator-0.9.5.3.tar.bz2
Wir wechseln nun in das Verzeichnis des entpackten Archives.
cd eaccelerator-0.9.5.3
Für die weitere Installation setzen wir nun 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="1" 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="1" 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. Der Cache wird nur bei "shm_only=0" hergenommen. Empfiehlt sich aber nicht bei Servern mit vielen Seiten, da das Caching sehr IO-intensiv ist. Daher default bei uns : "shm_only=1"!
Abschließend ist noch die Neuerstellung der Konfiguration notwendig. Informationen hierzu findet ihr unter Regenerieren der Konfiguration (engl.).


