PHP on Windows

594 views
518 views

Published on

History of PHP on Windows, why is it worth running PHP on IIS etc.

Presentation made on 2010-05-11.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
594
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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.
  • PHP on Windows

    1. 1. PHP on Windows<br />„Make WEB Not War“<br />
    2. 2. Aš?<br />Tomas Dabašinskas<br />KTU Informatikos studentas (IFF-7)<br />Microsoft Student Partner (MSP)<br />6 metai su WEB<br />4 metai su PHP<br />
    3. 3. PHP on Windows<br />
    4. 4. PHP on Windows?<br />Projektas, apimantis:<br />PHP branduolio kūrimą<br />PHP „installer‘io“ kūrimą<br />PHP išplėtimus („extensions“)<br />PHP dokumentavimą<br />PHP bendruomenę<br />Atviro kodo PHP aplikacijas<br />. . .<br />
    5. 5. Istorija<br />2006<br />2007<br />2008<br />2009<br />2010<br />
    6. 6. CGI  FastCGI<br />PHP CGI == <br />Kiekvienai užklausai – naujas procesas<br />PHP FastCGI == <br />Užklausoms naudojami tie patys procesai<br />PHP ISAPI<br />Internet Server Application Programming Interface<br />Nenaudokite! PHP 5.3 nepalaiko<br />
    7. 7. FastCGI 1.5<br />Naujovės:<br />Automatiškai nustatomas maxInstances optimaliam našumui<br />Po PHP konfigūracijos (php.ini) pakeitimo, nereikia perkrauti serverio<br />Noriu!!!<br />IIS 7.5 palaiko out-of-the-box<br />IIS 7.0 reikalingas FastCGI atnaujinimas<br />IIS 5.1 – 6.0 reikalingas FastCGI 1.5 papildymas („extension“)<br />
    8. 8. PHP 5.3<br />Naujovės:<br />Naudojamas VC9 kompiliatorius (PHP 5.2 naudojo VC6)<br />Optimizuoti API kvietimai (naudojama Win32)<br />Suderinamumo pakeitimai<br />Greitis padidėjo > 40%<br />
    9. 9. Microsoft WEB Platform Installer<br />Piece of cake <br />
    10. 10. Kodėl?<br />
    11. 11. Kas viduje?<br />
    12. 12. Microsoft WEB Platform Installer 2.0<br />
    13. 13. Priedai<br />WinCache, SQL Server Driver for PHP<br />
    14. 14. WinCache 1.0<br />PHP greitintuvas, optimizuotas veikimui ant Windows:<br />Nereikalingos kodo modifikacijos<br />Opkodų kešavimas<br />Failų kešavimas<br />Įtrauktas į PECL<br />BSD licencija<br />http://www.php.net/wincache<br />
    15. 15. WinCache 1.1<br />Galimybė kešuoti vartotojo duomenis<br />Funkcijos, suderinamos su APC<br />Galimybė kešuoti sesijas:<br />session.save_handler = wincache<br />Kešavimo statistikos skriptas<br />
    16. 16. Našumas<br />
    17. 17. SQL Server Driver for PHP 1.1<br />Įgalina PHP aplikacijų, veikiančių Windows serveryje, integraciją su Microsoft SQL serveriu<br />Procedūrinė sąsaja (PHP funkcijos, darbui su SQL serveriu)<br />Atviro kodo:<br />http://sqlsrvphp.codeplex.com<br />Įtrauktas į WEB Platform Installer 2.0 (kaip ir WinCache)<br />
    18. 18. SQL Server Driver for PHP 2.0<br />Pristatytas Balandžio 19 dieną, DrupalCon San Francisco 2010 konferencijos metu<br />Kol kas – CTP1 versija<br />Esminė naujovė – PDO palaikymas<br />Objektiškai orientuota sąsaja<br />Universalus kodas, kurį galima naudoti su įvairiais DB serveriais<br />Bus naudojamas Drupal 7 versijoje<br />
    19. 19. SQL Server Driver for PHP 2.0<br />
    20. 20. WEB aplikacijos<br />Kitas Microsoft indėlis į OpenSource<br />
    21. 21. Joomla<br />Joomla – atviro kodo turinio valdymo sistema (TVS), parašyta su PHP<br />Balandžio 28 dieną Microsoft pasirašė „Joomla Contributor Agreement“<br />Perdavė Joomla kūrėjams kodo (pagal GPL licenziją)<br />Microsoft rašytas kodas Joomla turinio valdymo sistemoje pasirodys nuo 1.6 versijos<br />
    22. 22. phpBB/Drupal<br />Nuo gegužės 7 phpBB 3.0.7-PL1 versija palaiko SQL serverį<br />phpBB įtrauktas į WEB Platform Installer<br />Commerce Guys – kompanija tiekianti el. komercijos sprendimus – susidomėjo naująja (2.0) SQL serverio tvarkyklės versija<br />Jų kuriamas Drupal 7 modulis buvo pritaikytas veikimui su SQL Server<br />
    23. 23. WordPress<br />Atviro kodo turinio valdymo sistema tinklaraščiams (ir ne tik)<br />Turi neoficialų įskiepį, įgalinantį WordPress veikti naudojant WinCache:<br />http://ruslany.net/2010/03/make-wordpress-faster-on-iis-with-wincache-1-1<br />Našumas pagreitėja porą kartų<br />
    24. 24. So...<br />Per 3 metus IIS/Windows tapo gana neblogu sprendimu PHP aplikacijų talpinimui<br />Per 2 metus PHP našumas išaugo daugiau nei 30 kartų<br />Microsoft WEB Platform Installer ženkliai palengvina WEB serverio, palaikančio PHP (ir netik) aplikacijas, diegimą ir paruošimą darbui<br />IIS serveris bei kitos Microsoft technologijos, veikdamos kartu su PHP išplečia pastarosios galimybes<br />Microsoft skiriamas dėmesys atviram kodui paskutiniais metais ženkliai išaugo<br />
    25. 25. Nuorodos<br />Oficialus PHP on Windows puslapis:<br />http://windows.php.net<br />PHP + kitos Microsoft technologijos:<br />http://www.interoperabilitybridges.com/projects/tag/PHP.aspx<br />PHP on Windows Training Kit:<br />http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=c8498c9b-a85a-4afa-90c0-593d0e4850cb<br />Microsoft WEB Platform Installer:<br />http://www.microsoft.com/web/php<br />
    26. 26. Dėkui už dėmesį<br />Jūsų klausimai?<br />

    ×