Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

PHP na IIS a další postřehy Michal Till. Přednášející Konzultant a vývojář – webové technologie Oblíbené: – Zend Framwork – Client-side RIA : Ext, YUI.

Podobné prezentace


Prezentace na téma: "PHP na IIS a další postřehy Michal Till. Přednášející Konzultant a vývojář – webové technologie Oblíbené: – Zend Framwork – Client-side RIA : Ext, YUI."— Transkript prezentace:

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 IIS jako CGI: navrženo na procesy, běží na vláknech => pomalé 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 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 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 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 5.ashx 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


Stáhnout ppt "PHP na IIS a další postřehy Michal Till. Přednášející Konzultant a vývojář – webové technologie Oblíbené: – Zend Framwork – Client-side RIA : Ext, YUI."

Podobné prezentace


Reklamy Google