Pentru cei care inca nu stiu,
eAccelerator este un accelerator PHP gratuit, ce creste
performanta scripturilor PHP prin caching, dupa ce
acestea au fost compilate, eliminand astfel nevoia de recompilare
de fiecare data cand sunt accesate si optimizeaza scripturile
marind astfel viteza de executie a unui cod PHP considerabil.
Pasii de instalare si configurare au fost facuti pe CentOS v4.3.
Nu garantez ca totul o sa mearga exact asa cum am scris mai jos
si pe alte flavor-uri linux.
Daca intampinati probleme, sunt aici sa va ajut.
PASUL DE INSTALAREAveti nevoie de urmatoarele pentru a porni:
* php4 sau php5
* autoconf
* automake
* libtool
* m4
Aveti de ales intre versiunile 0.9.4 sau 0.9.5-beta1 si beta2.
Eu am folosit beta2 si inca nu am intampinat probleme.
Sursa o puteti downloada de aici:
http://kent.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.5-beta2.tar.bz2Dupa download si dezarhivare, intrati in directorul sursei si rulati urmatoarele comenzi:
Daca aveti doar o versiune de php instalata:
phpize
./configure
make
Daca aveti mai multe versiuni, ex: php4 si php5 pe acelasi server iar una
este instalata in directorul /opt/php si pentru aceasta
doriti instalarea eAccelerator:
export PHP_PREFIX="/opt/php"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
Pentru mai multe optiuni de compilare urmatorul link este de ajutor:
http://eaccelerator.net/wiki/CompileConfigurationDupa compilare ar trebui sa existe fisierul "eaccelerator.so" in subdirectorul "modules" din directorul sursa al eAccelerator.
Instalarea propriuzisa se face prin comanda(almost like always):
make install
In final, pentru a porni eAccelerator odata cu php-ul,
copiati urmatoarele linii, la sfarsitul fisierul php.ini al versiunii de php pentru care instalati eAccelerator:
Exista doua moduri de instalare:
Instalarea ca extensie Zend (unde /usr/local/lib/php este directorul unde
am instalat php-ul):
zend_extension="/usr/local/lib/php/extensions/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/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"
Atentie, daca folositi o versiune de php thread safe trebuie
sa folositi "zend_extension_ts" in locul "zend_extension"
Instalarea ca extensie php:
extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/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"
In urmatorul pas trebuie sa creati directorul pentru cache "/tmp/eaccelerator"
Cel mai simplu mod:
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator
Ultimul pas il reprezinta restartul apache.
Daca totusi apache nu porneste, pur si simplu comentati liniile pe care le-ati
introdus in fisierul php.ini si reporniti apache fara eAccelerator, asta daca nu doriti sa
aveti down time, iar motivul pentru care nu a pornit il gasiti in log-ul de erori apache.
Daca totul a decurs corect, apache trebuie sa reporneasca.
Pentru a verifica instalarea eAccelerator, creati un fisier test.php
intr-un director unde browserul are acces, cu urmatorul continut:
<?
phpinfo();
?>
apoi apelati acest fisier din browser.
Ar trebui sa vedeti mai jos un tabel cu
titlul eAccelerator si diverse informatii.
PASUL DE CONFIGURAREVoi incerca sa explic configurarea eAccelerator, mai precis
optiunile pe care le consider mai importante:
modificarea setarilor presupune restartul apache.
eaccelerator.shm_size = "0" - optiune defaultPermite controlul cantitatii de memorie shared in MB alocata pentru caching.
Eu am setat aceasta optiune pe 64 MB, 0 reprezentand valoarea default, nu 0 MB!
valoarea default poate fi 16 MB, 32 MB etc,
se poate verifica in informatiile afisate de fisierul creat mai sus, test.php
Atentie, pentru a seta o anumita valoare, mai mare decat valoarea default, presupune:
verificarea valorii kernel.shmmax din /etc/sysctl.conf sau, daca nu exista,
verificarea valorii din fisierul /proc/sys/kernel/shmmax
Daca valoarea setata pentru shm_size la eAccelerator este mai mare decat
cea din unul din fisierele de mai sus, apache nu o sa porneasca !
Daca dorim setarea unei valori, mai mare decat cea default, ca in cazul meu, 64 MB,
trebuie sa copiem valoarea in bytes, in fisierul /proc/sys/kernel/shmmax si daca nu
exista, in fisierul /etc/sysctl.conf atribuim variabilei kernel.shmmax valoarea tot in bytes.
eaccelerator.shm_ttl = "0" - valoare defaultDaca eAccelerator nu mai dispune de memorie suficienta pentru a pune in cache un script nou,
va scoate din cache, scipturi care nu au mai fost accesate de cel putin shm_ttl secunde, in
cazul valorii default, 0, niciodata.
Eu am setat aceasta valoare la 86400 secunde, adica 24 ore.
eaccelerator.shm_prune_period = "0" - valoare defaultDaca eAccelerator nu mai dispune de suficienta memorie pentru a pune in cache un script nou,
va incerca sa scoata din cache scripturi vechi, daca incercarea precedenta (la shm_ttl), a fost
facuta in urma cu shm_prune_period.
Eu am setat aceasta valoare la 43200 , 12 ore.
eaccelerator.compress = "1" - valoare defaultNu am vrut sa mai comprime nimic, mi s-a parut un pas in plus, asa ca am setat-o la 0
In rest totul poate fi lasat default ! Daca totusi se doreste modificarea altor variabile
sau mai multe informatii, gasiti pe pagina eAccelerator la link-ul "Ini settings".
Va doresc succes !