Feb 14 2008

Instalace eAcceleratoru na Debianu

Tag: Debian,Linux,PHPJens @ 23:00

eAccelerator je velmi užitečný nástroj pro „zrychlení“ PHP. Funguje na principu vytváření mezipaměti (cache) PHP skriptů a v případě že máte na serveru slabší stroj, nebo prostě jen potřebujete maximálně zrychlit vaše stánky je vhodné uvažovat o jeho použití. Jeho výhody se ukáží především při programování projektů založených na mnoha knihovnách, které se v průběhu vývoje nemění nebo pouze minimálně. eAccelerator vytvoří cache všech těchto PHP skriptů a není tedy nutné je při každém načtení stránky znovu kompilovat.

1. Příprava

eAccelerator (EA) je třeba instalovat ze drojáků, v aktuálních verzích (Etch, Lenny) balíček nenajdete vzhledem k jeho Debianí bezpečnostní politice (problém s oprávněním k přístupu kešovaných PHP skriptů). Zde tedy máte na výběr, buď si stáhnete aktuální stable verzi eAccelerator 0.9.5.2 a nebo si pomocí SVN stáhnout aktuální vývojovou verzi.

Pokud budete stahovat přes SVN, tak doporučují následující postup (volitelné, varianta 1):

# apt-get install subversion
# svn --username anonymous --password anonymous co http://dev.eaccelerator.net/eaccelerator/trunk eaccelerator
# cd eaccelerator

Pokud instaluje ze stažených zdrojáků (volitelné, varianta 2):

# tar jxvf eaccelerator-0.9.5.2.tar.bz2
# cd eaccelerator-0.9.5.2

Pro překlad EA dále budeme potřebovat (mimo klasických gcc/g++, …) i balíček php5-dev („obsahující“ nezbytné balíčky: autoconf, automake, libtool, m4):

# apt-get install php5-dev

2. Překlad a instalace

A konečně nastavíme cestu k phpize a provedeme přípravu překladu

# export PHP_PREFIX="/usr"
# $PHP_PREFIX/bin/phpize

a spustíme vlastní překlad a instalaci

# ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
# make
# make install

Nyní potřebujeme vytvořit adresář pro cache PHP skriptů (/tmp nebo /var). Pro zvýšení bezpečnosti se doporučuje nastavit vlastníka a práva adresáře podle uživatele pod kterým PHP běží (tedy typicky Apache — www-data):

# mkdir /tmp/eaccelerator
# chown www-data:www-data /tmp/eaccelerator
# chmod 0700 /tmp/eaccelerator

3. Konfigurace

A konečně zavedení modulu EA pomocí php.ini a nastavení jeho parametrů. Takže tedy něco jako
vim /etc/php5/apache2/php.ini a na konec souboru dopsat tyto řádky:

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"

Toto je výchozí doporučená konfigurace, pokud se chcete dozvědět více a testovat různá nastavení, mrkněte na stránku přímo od eAcceleratoru věnující se konfiguraci.

Po konfiguraci je třeba ještě restartovat/reloudnout Apache:

# /etc/init.d/apache2 reload

4. Testování

<?
   phpinfo();
?>

a hned v úvodní hlavičce by se mělo objevit navíc text o verzi eAcceleratoru :

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
    with eAccelerator v0.9.6-dev, Copyright (c) 2004-2007 eAccelerator, by eAccelerator

Verze

Pro úplnost jen uvedu, že výše popsaný postup je otestovaný na následucích verzích:

eAccelerator v0.9.6-dev (sestavení 340)
PHP 5.2.5-2
Apache 2.2.8
OS: Debian Lenny - 2.6.22-3-686 (toho času testing;)

3 komentáře k článku “Instalace eAcceleratoru na Debianu”

  1. Martin napsal:

    Eaccelerator je výborný doplněk, sám velice rád používám. I na starém serveru mohou PHP skripty běžět docela rychle.

  2. LuRy napsal:

    jen bych doplnil ze to svnko uz nefacha nejakou dobu..ani bart.eaccelerator.net ..
    poslendi stable verze je dostupna ke stazeni na http://code.google.com/p/acelnmp/downloads/detail?name=eaccelerator-0.9.6.1.tar.bz2&can=2&q=

  3. Jens napsal:

    Uz je to nekolik let co jsem tento clanek psal a bohuzel to vypada ze projekt byl opravdu ukoncen.