Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilElen Švecová
1
PHP na IIS a další postřehy Michal Till
2
Přednášející Konzultant a vývojář – webové technologie Oblíbené: – Zend Framwork – Client-side RIA : Ext, YUI Magazín Connect – internet, vývoj softwaru
3
Agenda PHP na IIS pomocí nového FastCGI handleru – Thread safety – „tím to všechno začalo“ – Konfigurace Integrace: „nakopíruji to a nic“ – WordPress a spol. – častý problém s URL rewritingem Nějaké další postřehy
4
Agenda PHP na IIS pomocí nového FastCGI handleru – Thread safety – „tím to všechno začalo“ – Konfigurace Integrace: „nakopíruji to a nic“ – WordPress a spol. – častý problém s URL rewritingem Nějaké další postřehy
5
Thread safe vs. Non thread safe PHP Windows vlákna Linux procesy PHP @ IIS jako CGI: navrženo na procesy, běží na vláknech => pomalé PHP @ IIS jako ISAPI: rychlé, ale pro PHP nestandardní, rozdíly ignorovány programátory, docházelo i k pádu ISAPI modulu (hlavně v minulosti) …zbylo pomalé CGI
6
Thread safe vs. Non thread safe PHP (2) Co s tím – je třeba se zbavit režie CGI (a zachovat kompatibilitu) Recyklace toho již bylo vykonáno a to pomocí – Op-code cache (akcelerátory) – Právě FastCGI Ale ty thready: problém synchronizace (thread safety) Prostě se na to vykašleme (non thread safe)
7
Thread safe vs. Non thread safe PHP (3) Jednotlivá vlákna non thread safe kódu se nesynchronizují, tj. nečekají na sebe 30%-40% úspory v rychlosti POZOR: TS a NTS kód nejde kombinovat … mnoho rozšíření do PHP je kompilováno jako TS Pořád může být rychlejší op-code caching Nově: zbrusu nové FastCGI prostředí ve Win/IIS
8
PHP @ FastCGI @ IIS Recap: CGI -> Module/ISAPI -> FastCGI Skoro jako CGI, až na to, že Jeden proces zpracovává mnoho požadavků Windows 2008 Server, Vista SP1 Microsoft/Zend spolupráce Masivní nárůst výkonu
9
PHP @ FastCGI @ IIS (2) Standardní instalce (IIS 7.0) – IIS -> Handler Mappings – *.php, FastCgiModule, c:\php\php-cgi.exe – potvrdit vytvoření FastCGI prostředí („FastCGI application“) pro php-cgi.exe Pozn: nyní máme dvojitou recyklaci FCGI prostředí. PHP standardně po 500 dotazech, IIS po 200 … PHP se k tomu nikdy nedostane, což chceme … lze nastavit v IIS/php.ini
10
Agenda PHP na IIS pomocí nového FastCGI handleru – Thread safety – „tím to všechno začalo“ – Konfigurace Integrace: „nakopíruji to a nic“ – WordPress a spol. – častý problém s URL rewritingem Nějaké další postřehy
11
WordPress @ IIS Typický problém: PHP má mnoho konstant ohledně názvů souborů, cest a zpracovávaných URL …spousta věcí je jinak Příklad: zdá se, že problém byl v konstantě REQUEST_URI – zatímco Apache přidal query string, IIS nikoliv – zatímco Apache předával hodnotu před přepsáním na „hezká url“, IIS po … atd. … V konstantách celkově zmatek, nefungoval např. Drupal, ale už je to opraveno.
12
Další problémny s URL (nejen WordPress) REQUEST_URI, PATH_INFO, PATH_TRANSLATED, SCRIPT_FILENAME, __FILE__ atd… kdo se v tom má vyznat… Interpretace „/index.php/id/40“ – Standardně: file not found -> rewrite pravidlo – IIS při standardním php.ini: “No input file specified.” – cgi.fix_pathinfo = 1 – cgi.force_redirect = 0 (?) Quick-fix řešení na mnoho výše uvedeného: auto_prepend_file = C:\PHP\fix_uris.php
13
Další problémy s URL (nejen WordPress) (2) Na IIS je vícero rewrite enginů na tvorbu „hezkých url“ IIS Mod-Rewrite má HTTP_X_ORIGINAL_URL IIS Isapi_Rewrite má HTTP_X_REWRITE_URL Pozn.: Jak vypadá kompletní diagram ukazující, co je třeba udělat pro sjednocení proměnných?...odpověď bude v nějakém opensource CMS, kde to mají již „vychytané“ … třída CURI z Joomly
14
IIS Auth for Wordpress plugin Autentizace: Windows, Basic (http), Forms (HTML) Windows Auth: je třeba vytvořit účet admin, kterým bude Wordpress spravovat účty (admin = administrátorský účet ve WP) Do skupiny IIS_IUSRS, ne Administrators Změna uživatele pod kterým běží PHP – direktivy impersonate v php.ini http://mvolo.com/blogs/serverside/attachment/483 5.ashx http://mvolo.com/blogs/serverside/attachment/483 5.ashx
15
Memcache na IIS memcached = “paměťový server“ Jednoduché API v PHP, čte a zapisuje objekty (proměnné). Dá se použít i jako storage na sessions. Linux: memcached daemon Windows: je třeba stáhnout separátní službu „Když to nefunguje, vypnu firewall a je to“ Obdobnou funkci poskytují op-code cache
16
Výsledek? Interoperabilita je technicky bezproblémová Zásadní zlepšení s novým FastCGI handlerem Spolupráce Microsoftu se Zendem … to ovšem platí pokud má firma/hosting poslední verzi, jinak… … z definice se stále jedná o minoritní kombinaci
17
Jsme u konce Děkuji za pozornost michal.till@gmail.com michal.till@gmail.com 604 144 144
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.