A memcached olyan alkalmazás, amellyel PHP adatokat lehet tárolni memóriában a szerveren. Jól használható például SESSIONOK adatainak kezeléséhez. Telepítése:
A memcached-t eredetileg Linux alá fejlesztették, de van hozzá Win32 verzió is. Önálló szervízként fut majd a szerveren megfelelő jogosultságokkal.
Telepítése:
- Töltsük le az alábbi oldalról a Win32-es memcache verziót: code.jellycan.com/memcached/
- A letöltött 1 db memcache.exe alkalmazást másoljuk be valamilyen könyvtárba. Én a PHP alá tettem egy memcache nevű könyvtárba, mondjuk C:\PHP\memcached\memcached.exe
- Installáljuk a memcache-et szervízként :c:\php\memcached\memcached.exe -d install
- Indítsuk el a memceched alkalmazást c:\php\memcached\memcached.exe -d start vagy net start "memcached Server"
- Töltsük le a php_memcached.dll modult az alábbi helyek egyikéről
- downloads.php.net/pierre/ (Itt sok win-es php modul dll van)
- PHP 5.2.* : www.pureformsolutions.com/pureform.wordpress.com/2008/06/17/php_memcache.dll
- PHP 5.1.* :PHP 5.1.* eseténkromann.info/download.php?strFolder=php5_1-Release_TS&strIndex=PHP5_1
- Irjuk be a PHP.INI-be az alábbi extension bejegyzést és a session bejegyzéseket, ezáltal a sessonok a gépen automatikusan memóriában fognak tárolódni:
extension=php_memcache.dll session.save_handler = memcache session.save_path= "127.0.0.1:112011"
- Indítsuk újra az Apache-ot
Megjegyzés: A fenti megoldás helyett használhatjuk a MEMBASE projektet, ami alkalmas arra, hogy pool-ban lévő szerverek egymással megosszák a session információkat, azaz a PHP alkalmas arra, hogy több szerveren megossza a webalkalmazás állapotát! - Alternatív megoldásként lehetőség van arra, hogy átírjuk a session kezelő algoritmust a PHP alkalmazásunkban, ha nem szeretnénk, hogy minden alkalmazás memcache-t használjon. Ekkor az alábbi linken lévő forráskódot ajánlom figyelmetekbe:http://www.softwareprojects.com/resources/programming/t-memcached-for-php-sessions-1654.html
- Ha a memcache default 64MB memóriája kicsi lenne, akkor az alábbi módon lehet megváltoztanti:
- HKLM/System/CurrentControlSet/Servicesmemcached Server kulcsnál az ImagePath bejegyzésben az kell beállítani a használt memória méretét. Például ha 512 MB cache-t akarsz használni, akkor.
?c:\php\memcached\memcached.exe" -d runservice -m 512
- HKLM/System/CurrentControlSet/Servicesmemcached Server kulcsnál az ImagePath bejegyzésben az kell beállítani a használt memória méretét. Például ha 512 MB cache-t akarsz használni, akkor.
További információk a memcache-ről:
- A PECL kód helye és dokumentáció: http://www.php.net/manual/en/memcache.ini.php
- Hogyan használjuk több szerveren a memcache adatokat (terhelésmegosztás több apache szerver között): http://repcached.lab.klab.org/
- Linux memcached megoldásról innen lehet olvasni: http://www.ducea.com/2009/06/02/php-sessions-in-memcached/
- Drupal rendszeren hogyan lehet használni a memcache alkalmazást: http://drupal.org/project/memcache