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=“extensionsmmcache.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.

Pozn. aut.: Protože v době zveřejnění tohoto článku byl na originálních stránkách k dispozici pouze archiv s chybnou verzí programu PHPCoder, můžete si stáhnout funkční verzi 1.3 přímo odsud – v archivu naleznete jak originální verzi z února 2004, tak CVS verzi z května 2004.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět