<p id='prepend'>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.</p>
<p>Free open source program <a href='http://turck-mmcache.sourceforge.net'>Turck MMCache</a> 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.</p>
<p>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):</p>
<div class='sample'>
[Turck MMCache]
<br />zend_extension_ts="extensions\mmcache.dll"
<br />mmcache.shm_size="16"
<br />mmcache.cache_dir="..\_datacache"
<br />mmcache.enable="1"
<br />mmcache.optimizer="1"
<br />mmcache.check_mtime="1"
<br />mmcache.debug="0"
<br />mmcache.filter=""
<br />mmcache.shm_max="0"
<br />mmcache.shm_ttl="0"
<br />mmcache.shm_prune_period="0"
<br />mmcache.shm_only="0"
<br />mmcache.compress="1"
</div>
<p>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φ.</p>
<p>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.</p>
<p>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.</p>
<p>Program nebo spφÜe skript <a href='http://phpcoder.sourceforge.net'>PHPCoder</a> 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.</p>
<li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3280' title='(36 komentß°∙)'>Interval.cz a jeho Φtenß°i</a></li>
<li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3296' title='(30 komentß°∙)'>PHP pro pokroΦilΘ - znovu t°φdy a objekty</a></li>
<li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3301' title='(24 komentß°∙)'>Kompletnφ pr∙vodce XSLT - ·vod do problematiky</a></li>
<li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3276' title='(21 komentß°∙)'>Webovß grafika podle TomßÜe BarΦφka</a></li>