1. PHP
e la piattaforma Windows
Pietro Brambati
Developer Evangelist
Microsoft
pietro.brambati@microsoft.com
http://blogs.msdn.com/pietrobr
2. Agenda
• PHP e Windows
• FastCGI
• Internet Information Server 7 (IIS 7) e PHP
• Phalanger
• Nuove tecnologie
http://blogs.msdn.com/pietrobr | Pietro Brambati
3. PHP e Windows
• Microsoft e Zend stanno lavorando insieme per offrire il
massimo agli sviluppatori che lavorano con PHP
• Internet Information Server è il web server della
piattaforma Microsoft
• Internet Information Server 7 è una piattaforma completa
per lo sviluppo di applicazioni web con PHP
• IIS 7 disponibile su Windows Vista e con “Longhorn Server”
• AJAX e Silverlight
http://blogs.msdn.com/pietrobr | Pietro Brambati
4. PHP e Windows …la storia!
• Due modi per far girare PHP su Windows
• La via “affidabile” CGI
• su Windows è costoso creare un nuovo processo per ogni richiesta
• La vai “veloce” ISAPI
• Su Windows è poco costoso creare thread
• Estensioni PHP non-thread safe
• Molte estensioni PHP non sono thread-safe
http://blogs.msdn.com/pietrobr | Pietro Brambati
5. FastCGI : oggi !
• Componente di IIS (5.x/6/7) che permette di utilizzare
PHP in modo affidabile e performante
• Riusa i processi creati per richieste successive
• PHP è single thread in uno dei processi del pool
• Sfrutta il multi-threaded di IIS 7
• Adatto per ambienti di produzione
• Attualmente in Technical Preview 2 e …
http://blogs.msdn.com/pietrobr | Pietro Brambati
6. Installare FastCGI su IIS 7
• PHP 5.2.1 o successive (oggi 5.2.2)
• Versione non-thread safe !
• Download FastCGI per la piattaforma (32 o 64 bit)
• Dal prompt dei comandi
• fcgisetup /install
• fcgisetup.exe /add C:PHPphp-cgi.exe PHP
• Quindi phpInfo()
• Per disinstallare
• Usare lo switch /uninstall
http://www.iis.net/default.aspx?tabid=2&subtabid=25&i=1345
http://blogs.msdn.com/pietrobr | Pietro Brambati
8. IIS 7 e .NET Framework
• .NET Framework è un framework per lo sviluppo di
applicazioni desktop, web e mobile
• fondamento della Microsoft Application Platform
• ASP.NET è la piattaforma per lo sviluppo web
• Con IIS 7 alcune funzionalità di ASP.NET 2.0 sono ora
parte della piattaforma
• per contenuti statici e pagine PHP
• Per l’ autenticazione e autorizzazione
• Gestione utenti e ruoli
• Profilazione … etc.
http://blogs.msdn.com/pietrobr | Pietro Brambati
9. IIS7: architettura modulare
• “Piccolo ed efficiente”
• Installi solo i componenti che ti servono
• Riduce il footprint di memoria
• Riduce la superficie di attacco
• Circa 40 moduli disponibili
• Moduli basati su API pubbliche
• Facile sostituire un modulo di IIS con uno proprio
http://blogs.msdn.com/pietrobr | Pietro Brambati
10. IIS 7 e PHP
Output Cache
• IIS 7 output cache
• Cache in memoria dell’intera response in user-mode
• Anche per contenuti dinamici
• Diverse copie della pagina in base a querystring, o headers
• Policy
• DontCache | CacheUntilChange | CacheForTimePeriod
• Configurabile da file (web.config)
<caching>
<profiles enabled=”true”>
<add extension=”.php” policy=”CacheForTimePeriod” duration=”00:30:00”
varyByQueryString=”action” varyByHeaders=”User-Agent”/>
</profiles>
</caching>
http://blogs.iis.net/ksingla/archive/2006/11/16/caching-in-iis7.aspx
http://blogs.msdn.com/pietrobr | Pietro Brambati
13. Phalanger Project
• Phalanger = compilatore del linguaggio PHP per .NET
• Abbreviazione di “PHP Language Compiler”
• Semplicità di PHP + ricchezza della piattaforma .NET
• Fornisce l’implementazione delle librerie che sono
compatibili con la maggior parte delle applicazioni PHP
• Compila in MSIL (Microsoft Intermediate Language)
• JIT compila in codice nativo performance
• Può chiamare estensioni PHP native
http://blogs.msdn.com/pietrobr | Pietro Brambati
14. Storia del progetto Phalanger
• Progetto in ambito accademico iniziato nel 2003 alla
facoltà di matematica e fisica all’università di Praga
• V 1.0 (feb 2006) compatibile con la maggior parte delle
applicazioni PHP 4 e 5
• V 2.0 (in Beta 3) aggiunto pieno supporto alle classi .NET
• Estensione al linguaggio PHP (PHP/CLI) per il supporto ai
generics, attributi, classi parziali, parte di LINQ etc
• Licenza Microsoft Share Source, ospitato su CodePlex
http://blogs.msdn.com/pietrobr | Pietro Brambati
16. Molto altro …
• Microsoft AJAX Library per PHP
• Pochi files per poter utilizzare le MS AJAX Library da PHP
• Le Microsoft AJAX Library (http://ajax.asp.net) sono scaricabili
gratuitamente con il codice sorgente
• http://codeplex.com/phpmsajax
• Silverligth (http://silverlight.net)
• Tecnologia cross-browser, cross-platform per realizzare RIA
• Client-side: VB, C#, Ruby, Phyton
• SIMP (Silverlight, IIS, MySQL, PHP)
• http://silverlight.net/learn/learnvideo.aspx?video=114
• Demo: http://delay.members.winisp.net/SilverlightAirlinesDemo
http://blogs.msdn.com/pietrobr | Pietro Brambati
17. Link utili
• Tutto su Internet Information Server 7
• http://www.iis.net/default.aspx?tabid=7
• FastCGI
• http://www.iis.net/default.aspx?tabid=1000051
• Fast CGI Post TP 2 (unofficial – update)
• http://blogs.iis.net/rickjames/archive/2007/04/19/fastcgi-tp2-unofficial-
update-70419.aspx
• PHP su IIS 7
• http://blogs.iis.net/bills/archive/2006/10/31/PHP-on-IIS.aspx
• Phalanger Project
• http://www.php-compiler.net
• Sicurezza
• http://secunia.com
http://blogs.msdn.com/pietrobr | Pietro Brambati
18. Risorse per sviluppatori
• Sito web italiano e newsletter MSDN Flash
• http://www.microsoft.com/italy/msdn
• Seminari on-line gratuiti (webcast)
• http://www.microsoft.it/msdn/webcast
• Conferenze
• http://www.microsoft.com/italy/msdn/eventi/default.mspx
• Community
• http://www.microsoft.com/italy/msdn/community/defult.mspx
• Contattaci
• http://www.microsoft.com/italy/msdn/contattaci
http://blogs.msdn.com/pietrobr | Pietro Brambati