6. CGI FastCGI PHP CGI == Kiekvienai užklausai – naujas procesas PHP FastCGI == Užklausoms naudojami tie patys procesai PHP ISAPI Internet Server Application Programming Interface Nenaudokite! PHP 5.3 nepalaiko
7. FastCGI 1.5 Naujovės: Automatiškai nustatomas maxInstances optimaliam našumui Po PHP konfigūracijos (php.ini) pakeitimo, nereikia perkrauti serverio Noriu!!! IIS 7.5 palaiko out-of-the-box IIS 7.0 reikalingas FastCGI atnaujinimas IIS 5.1 – 6.0 reikalingas FastCGI 1.5 papildymas („extension“)
8. PHP 5.3 Naujovės: Naudojamas VC9 kompiliatorius (PHP 5.2 naudojo VC6) Optimizuoti API kvietimai (naudojama Win32) Suderinamumo pakeitimai Greitis padidėjo > 40%
14. WinCache 1.0 PHP greitintuvas, optimizuotas veikimui ant Windows: Nereikalingos kodo modifikacijos Opkodų kešavimas Failų kešavimas Įtrauktas į PECL BSD licencija http://www.php.net/wincache
15. WinCache 1.1 Galimybė kešuoti vartotojo duomenis Funkcijos, suderinamos su APC Galimybė kešuoti sesijas: session.save_handler = wincache Kešavimo statistikos skriptas
17. SQL Server Driver for PHP 1.1 Įgalina PHP aplikacijų, veikiančių Windows serveryje, integraciją su Microsoft SQL serveriu Procedūrinė sąsaja (PHP funkcijos, darbui su SQL serveriu) Atviro kodo: http://sqlsrvphp.codeplex.com Įtrauktas į WEB Platform Installer 2.0 (kaip ir WinCache)
18. SQL Server Driver for PHP 2.0 Pristatytas Balandžio 19 dieną, DrupalCon San Francisco 2010 konferencijos metu Kol kas – CTP1 versija Esminė naujovė – PDO palaikymas Objektiškai orientuota sąsaja Universalus kodas, kurį galima naudoti su įvairiais DB serveriais Bus naudojamas Drupal 7 versijoje
21. Joomla Joomla – atviro kodo turinio valdymo sistema (TVS), parašyta su PHP Balandžio 28 dieną Microsoft pasirašė „Joomla Contributor Agreement“ Perdavė Joomla kūrėjams kodo (pagal GPL licenziją) Microsoft rašytas kodas Joomla turinio valdymo sistemoje pasirodys nuo 1.6 versijos
22. phpBB/Drupal Nuo gegužės 7 phpBB 3.0.7-PL1 versija palaiko SQL serverį phpBB įtrauktas į WEB Platform Installer Commerce Guys – kompanija tiekianti el. komercijos sprendimus – susidomėjo naująja (2.0) SQL serverio tvarkyklės versija Jų kuriamas Drupal 7 modulis buvo pritaikytas veikimui su SQL Server
23. WordPress Atviro kodo turinio valdymo sistema tinklaraščiams (ir ne tik) Turi neoficialų įskiepį, įgalinantį WordPress veikti naudojant WinCache: http://ruslany.net/2010/03/make-wordpress-faster-on-iis-with-wincache-1-1 Našumas pagreitėja porą kartų
24. So... Per 3 metus IIS/Windows tapo gana neblogu sprendimu PHP aplikacijų talpinimui Per 2 metus PHP našumas išaugo daugiau nei 30 kartų Microsoft WEB Platform Installer ženkliai palengvina WEB serverio, palaikančio PHP (ir netik) aplikacijas, diegimą ir paruošimą darbui IIS serveris bei kitos Microsoft technologijos, veikdamos kartu su PHP išplečia pastarosios galimybes Microsoft skiriamas dėmesys atviram kodui paskutiniais metais ženkliai išaugo
25. Nuorodos Oficialus PHP on Windows puslapis: http://windows.php.net PHP + kitos Microsoft technologijos: http://www.interoperabilitybridges.com/projects/tag/PHP.aspx PHP on Windows Training Kit: http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=c8498c9b-a85a-4afa-90c0-593d0e4850cb Microsoft WEB Platform Installer: http://www.microsoft.com/web/php
Prisistatymas. Vienas iš 8 Lietuvos MSP (vienas iš 3 Kauno MSP). Su PHP > 4 metų (tiksliai kiek – nepamenu).Šiuo metu – senior programmer (su PHP).
Šiandien papasakosiu apie PHP on Windows
Taigi, kas tai yra „PHP on Windows“? Tai MS iniciuotas projektas, sudarytas iš daug įvairios veiklos, siekant pagerinti PHP palaikymą Windows/Windows Server operacinėje sistemoje. MS stengias pridėti savo indėlį į PHP branduolį bei PHP dokumentacjią. Taip pat tobulina instalaicinį paketą, skirtą Windows OS, bei kuria priedus, skirtus PHP.Paskutiniu metu daug demesio skiriama ir atviro kodo aplikacijoms, sukurtoms su PHP.
Šiek tiek istorijos.Jau ne pirmi metai, kai PHP galima diegti į Windows platformą, tačiau daugelis ilgą laiką stengėsi to vengti. Būtent dėl to, jog pradžioje, 2006, kuomet PHP IIS serveryje veikė kaip CGI, situacija buvo prasta (šiek tiek daugiau kitoje skaidrėje). Vėliau, parėjus prie FastCGI situacija pagerėjo. 2008 metais po php.net atsidaro atskira kaategorija windows.php.net skirta PHP deployment‘ui ant Windows OS. 2009 MS sukūrė WinCache 1.0 priedą, skirtą PHP. Šiemet išėjo naujos FastCGI bei WinCache versijos.
Taigi, kaip pasikeitė situacija pareinant nuo CGI prie FastCGI. Viena didžiausių CGI problemų buvo tai, jog kiekvienai užklausai būdavo kuriamas naujas procesas. Kaip žinia, procesų kūrimas yra ganėtinai reiklus resursams, tai pastarieji nebuvo naudojami prasmingai. Išėjes FastCGI stipriai pagreitino PHP veikimą. Užklausoms pradėta naudoti tie patys procesai, pakeistas darbas su gijomis, atlikta daug kitų patobulinimų.Seniau dar buvo galimybė PHP leisti per ISAPI, tačiau tai nerekomenduojama, kadangi greitis nebus geresnis nei FastCGI. Nuo 5.3 PHP ant Windows šio būdo jau nebepalaiko
Šiemet išėjęs FastCGI 1.5 taip pat turėjo keletą patobulinimų. Buvo pagerintas našumas. Taip pat vienas patogumas yra tai, jog pakeitus PHP konfigūraciją nereikia perkrauti serverio. FastCGI 1.5 ant IIS 7.5 jau palaikomas iš kart. Senesnėse IIS serverio versijose reikalingas atnaujinimas (ant 7.0) arba papildymas (5.1 – 6).
Kad viskas būtų dar paprasčiau, į pagalbą ateina Microsoft WEB Platform Installer. Jei trumpai, tai diegimo programa, skirta greitai ir lengvai paruošti WEB servery ant Windows OS.
Privalumų tikrai nemažai. Pradedant tuo, kad jis yra nemokamas, tesiant kitais features‘ais. WPI ya mažas (diegimo paketas užima porą megabaitų. Vėliau parsisiunčiama ir diegima tik tai tai, ko Jums reikia). Punktu „gudrus“ omenyje turima, jog prieš diegramas konkretų pasirinktą paketą, šis įrankis patikrina, ar jis įdiegtas veiks taip kaip priklauso. Jeigu reikia, įdiegia papildomus įrankius ar priedus. Kas kartą paleidus WPI, jis patikrina, ką jau turime įdiegę ir kas naujo yra išėję – tad visada galima naudoti naujausias versijas. WPI taip pat palaiko keletą kalbų, deja, kaip matot, Lietuvių kalbos nėra. Taip pat vienas iš didesnių features‘ų yra tai, jog yra galimybė diegti WEB aplikacijas kelių mygtukų paspaudimu: pasirenkama norima aplikacija (jos sugrupuotos į kategorijas), parsiunčiama ir įdiegiama naujausia jos versija, su visais trūkstamais papildiniais (jei įmanoma).
Kaip minėjau, pats WPI teužima keletą MB. Jums pasirinkus ko norite, tai bus parsiųsta ir įdiegta. O rinktis yra iš ko. Į WPI įeina IIS (7.5) serveris, naujausia .NET karkaso versija, MS SQL serveris. Taip pat (paryškinau), svarbu, jog įeina ir PHP. Papildomai galima įdiegti įvairių įrankių bei papildymų serveriui (SmoothStreaming, SEO toolkin, URL Rewrite etc).
Štai taip atrodo WPI jį atidarius. Kaip matote, pirmoje kortelėje rodoma, ką naujo galima įdiegti. Kitose kortelėse yra sugrpuoti kiti įrankiai ir priedai. Daugelis kortelių, jas pasirinkus, išsiskleidžia. Taip tampa lengviau rasti tai, ko ieškome.
Kaip minėjau, MS prie PHP prisideda ir įvairių priedų (extensions) kūrimu. Šiek tiek papasakosiu apie du pagrindinius MS sukurtus priedus, skirtus PHP
WinCache – PHP greitintuvas, skritas paspartinti PHP aplikacijas, veikiančias Windows aplinkoje. Norint jį naudoti, nereikia atlikti jokių kodo modifikacijų. Php.ini konfiguraciniame faile užtenka atkomentuoti šio priedo eilutę (žinoma, prieš tai jis turi būti įdiegtas). WinCache kešuoja failus bei opkodus (žemo lygio komandas), tad, kaip vėliau pamatysite, greičio skirtumas tikrai akivaizdus.Nurodoje apačioje, galite daugiau paskaityti apie šį priedą, bei rasti jo funkcijų aprašymą.Beje, WinCache platinamas pagal BSD licenziją.
Prieš metus išleistas WinCache 1.1 turėjo keletą patobulinimų. Pagrinidinis iš jų buvo galimybė pačiam vartotojui (t.y programuotojui) kešuoti savo duomenis, pasinaudojant naujomis funckijomis, kurios yra suderintos su APC. Taip pat atsirado galimybė paspartinti ir sesijų saugojimą.
Taigi, kaip minėjau, sparta, naujdojant WinCache tikrai išauga. Čia matote 5 diegramas, kuriuose vaizduojamas užklausų skaičius per sekundę (RPS) su skirtingomis PHP konfiguracijomis. Kai sakiau, jog PHP ant CGI buvo tikrai lėtas – nemelavau. Pagal šį grafiką, tuomet buvo apdorojamis tik dvi užklausos per sekundę. FastCGI šį skaičių padidino beveik 8 kartus. Kaip matome trečiajame grafike, WinCache taip pat ženkliai padidina apdorojamų užklausų skaičių. Paskutinis grafikas rodo PHP su naujasne PHPCache verssija. Kaip matote, naudojant User Cache, užklausų skaičius vėl padidėjaBeje, bechmarkas darytas ne mano, o paimtas iš vieno blog‘o
Taip pat MS pasirūpino ir SQL server tvarkykle, skirta PHP. Ši tvarkyklė įgalina PHP aplkiacijoms naudoti microsoft sukurtą SQL sereerį. 1.1 versijoje ši tvarkyklė turėjo tik procedūrinę sąsąją, t.y, darbas su šiuo serveriu buvo aprašomas funkcijomis. Jau nuo pat išleidimo ši tvarkyklė buvo atviro kodo ir yra prieinama CodePlex‘e, nurodytu adresu.Beje, kaip minjėjau, į WPI yra įtraukti daugybė priedų, tai SQL server driver, o taip pat ir ankščiau minėtas WinCache ten taip pat yra.
Prieš mažiau nei mėnesį, balandžio 19 dieną, buvo pristatyta nauja – 2.0 SQL server tvarkyklės versija. Kol kas ji CTP stadijoje. Esminė naujovė, kuri buvo pristatyta, tai PDO sąsaja. Kam tekę programuoti su PHP, greičiausiai žino, kas tai. Dabar darbui su SQL galima rašyti objektiškai orientuotą kodą ir šį kodą vėliau, prireikus, naudoti su kitais serveriais. Lygiai taip pat senesnes aplikacijas, kuriose naudojama PDO sąsaja galima lengvai priversit veikti su SQL serveriu.
Čia matote SQL tvarkyklės, skirtos PHP struktūrą, bei jos pasikeitimus nuo 1.1 iki 2.0 versijos. Kaip matote, dabar biblioteka yra suskaidyta į dvi atskiras dll biliotekas. Tai pat veikimas nėra tiesiogis – naudojamas papildomas lygmuo.
Taip pat paskutiniu metu MS daug dėmesio skiria ir ant PHP veikiančiioms atviro kodo WEB aplikacijoms.
Mažiau nei prieš pusę mėnesio Microsoft pasirašė sutartį su joomla, pagal kurią prisižadėjo kodu prisidėti prie Joomla kūrimu. Jau dabar kažkiek kodo (pagal GPL licenziją) yra peruoda Joomlos kūrėjams. Žadama, jog sekanti versija, kurioje bus naudojamas šis MS kodas – 1.6.
Kalbant apie ankščiau minėtą SQL tvarkyklę, ją jau naudoti pradėjo Drupal bei PHPBB. Beje, PhpBB neseniai buvo įtrauktas ir į WPI. Drupal, bent jau kol kas, rasti prie WPI WEB aplikacijų, nepavyko.
Turbūt WordPress turinio sistemą žino beveik visi. Bloge, skaidrėje nurodytu adresu, galima rasti pluginą, įgalinantį WP naudoti WinCache. Skaidrės apačioje pateikiami greičio testai. Greitis, naudojant WinCache, lyginant jį su standartiniu WP greičiu, išauga maždaug dvigubai ir net gi vos vos lenkia Zend Optimizer.
Taigi, jeigu apibendrinti viską, ką šiandien papasakojau...
Čia dar keletas nuorodų, susijusių su šiandienos tema. Kadangi greičiauisiai nepavyks jų visų atsiminti (na, bent jau 3-ios tai tikrai), skaidres įkelsiu į internetą (www.mugit.lt) – ten galėsite peržiūrėi visus adresu.
Dėkui už dėmesį. Jeigu turite kokiių klausimų, klauskite – bandysiu atsakyti.