Navigace

Hlavnφ menu

 

Turck MMCache a PHPCoder

Chcete-li seri≤zn∞ podnikat v oblasti web-based °eÜenφ, postaven²ch nad PHP, dostanete se brzy do konfliktu s otev°enostφ zdrojovΘho k≤du. ProblΘmem je, jak ochrßnit svß prßva, kdy₧ ka₧d² zßkaznφk m∙₧e vaÜi prßci velmi jednoduÜe okopφrovat a vyu₧φvat dle libosti, ani₧ by vßm zaplatil jedin² halφ°. U₧iteΦn²m pomocnφkem se vßm m∙₧e stßt Turck MMCache a jeho dopln∞k PHPCoder. A krom∞ ochrany vßm poskytnou i dalÜφ u₧iteΦnΘ slu₧by, nap°φklad keÜovßnφ skript∙ a b∞hovou optimalizaci.

Free open source program Turck MMCache pat°φ bezpochyby k t∞m zajφmav∞jÜφm, s nimi₧ jsem se dosud setkal. Vznikl v roce 2001 a patronßt nad jeho v²vojem dr₧φ firma Turck Software St. Petersburg, co₧ je ruskß poboΦka n∞meckΘ Turck GmbH Munich. K jejich zßkaznφk∙m pat°φ p°edevÜφm r∙znΘ banky a pojiÜ¥ovacφ spoleΦnosti. P∙vodn∞ bylo ·kolem tΘhle utilitky urychlovat b∞h aplikacφ v PHP, pozd∞ji se p°idala i funkce bezpeΦnostnφ. V souΦasnosti ji tedy lze pou₧φt jako akcelerßtor, optimizΘr, enkoder a dynamickou cache.

Turck MMCache m∙₧e b²t pou₧it jako extenze PHP nebo samotnΘho Zend engine. Rozhodnete-li se ho otestovat, nejjednoduÜÜφ je nainstalovat ho jako dopln∞k PHP. Na platform∞ Windows staΦφ nakopφrovat p°edkompilovanou knihovnu "mmcache.dll" do slo₧ky s extenzemi a na konec souboru php.ini doplnit instrukce, regulujφcφ jejφ pou₧itφ. Malou chybiΦkou je, ₧e se knihovny liÜφ podle verze PHP, lze to vÜak pochopit jako da≥ z kvality. Osv∞dΦila se mi nßsledujφcφ konfigurace (nezapome≥te si p°izp∙sobit cesty):

[Turck MMCache]
zend_extension_ts="extensions\mmcache.dll"
mmcache.shm_size="16"
mmcache.cache_dir="..\_datacache"
mmcache.enable="1"
mmcache.optimizer="1"
mmcache.check_mtime="1"
mmcache.debug="0"
mmcache.filter=""
mmcache.shm_max="0"
mmcache.shm_ttl="0"
mmcache.shm_prune_period="0"
mmcache.shm_only="0"
mmcache.compress="1"

Vym∞nil jsem Zend Optimizer, kter² jsem dosud pou₧φval (mohou b²t ale nainstalovßny i souΦasn∞), za Turck MMCache a nestaΦil jsem se divit. B∞h m²ch aplikacφ se skuteΦn∞ z°eteln∞ zrychlil, a to tak, ₧e jsem rychlejÜφ odezvu mohl pozorovat prost²m okem. ZvlßÜ¥ v p°φpad∞ listovßnφ databßzov²mi tabulkami v phpMyAdmin bylo zrychlenφ nep°ehlΘdnutelnΘ. Zcela v²jimeΦn∞ jsem tedy ochoten v∞°it autorsk²m test∙m, podle nich₧ Turck MMCache p°ekonßvß vÜechny svΘ konkurenty. Rozhodn∞ alespo≥ v p°φpad∞ Zendu nejde o planΘ vychloubßnφ.

ukßzka hlaviΦky vestav∞nΘho encoderu

Urychlenφ b∞hu aplikacφ, a¥ u₧ pomocφ optimalizace skript∙ nebo dynamick²m keÜovßnφm, je jist∞ p°φjemnß v∞c. Nejvφce jsem vÜak byl zv∞dav na schopnosti Turck MMCache coby enkodΘru. Nejprve bych ale rßd podotknul, ₧e zak≤dovßnφ skriptu neznamenß jeho dokonalou ochranu. V₧dy je mo₧no zφskat pomocφ reverse engeneeringu alespo≥ funkΦn∞ obdobn² k≤d, jde vÜak obvykle o natolik nßkladnou proceduru, ₧e se v praxi vyu₧φvß jen v²jimeΦn∞. EnkodΘr tedy nem∙₧e zaruΦit dokonalou bezpeΦnost k≤du, poskytuje ale jeho p°ijatelnou ochranu.

Turck MMCache Encoder je docela Üikovnß v∞ciΦka. Umo₧≥uje p°evod PHP skript∙ do nonreversibilnφho byte k≤du, kter² je nßsledn∞ p°φstupn² pouze skrze vestav∞nΘ funkce Turck MMCache nebo standalone TurckLoader. Navφc je autorovi skriptu dßna mo₧nost omezit jeho b∞h na konkrΘtnφ IP Φi jmΘno serveru, IP nßvÜt∞vnφka, datum expirace skriptu nebo Φasov² limit, po kter² m∙₧e b²t aplikace zßkaznφkovi p°φstupnß. Samoz°ejm∞, encoding mß negativnφ vliv na rychlost, s vestav∞nou keÜφ to ale nenφ problΘm. Tedy pokud mßte dostateΦn∞ v²konn² hardware.

ukßzka hlaviΦky PHPCoderu

PHPCoder

Program nebo spφÜe skript PHPCoder je urΦen programßtor∙m, jejich₧ lenost jim brßnφ u₧ i ve studiu parametr∙ p°φkazovΘ °ßdky. Turck MMCache Encoder sice obsahuje jednoduchΘ web-based rozhranφ, to ale umo₧≥uje pouze velmi zßkladnφ nastavenφ. PHPCoder toto rozhranφ nahrazuje a zp°φstup≥uje prakticky vÜechny vlastnosti Encoderu v sice graficky jednoduchΘm, ale velmi efektivnφm formulß°i. Krom∞ vlastnφch parametr∙ pro k≤dovßnφ zde mßte mo₧nost nap°φklad nastavit i neodruÜitelnou hlaviΦku nebo patiΦku sv²ch skript∙ a podobnΘ skopiΦinky, kterΘ jist∞ ocenφ ka₧d² hraΦiΦka.

Mßlek, VilΘm (20. 4. 2004)
ÜΘfredaktor Interval.cz