pietro brambati: php e la piattaforma microsoft
DESCRIPTION
TRANSCRIPT
PHP
e la piattaforma Windows
Pietro Brambati
Developer Evangelist
Microsoft
http://blogs.msdn.com/pietrobr
http://blogs.msdn.com/pietrobr | Pietro Brambati
Agenda
• PHP e Windows
• FastCGI
• Internet Information Server 7 (IIS 7) e PHP
• Phalanger
• Nuove tecnologie
http://blogs.msdn.com/pietrobr | Pietro Brambati
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
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
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
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:\PHP\php-cgi.exe PHP
• Quindi phpInfo()
• Per disinstallare
• Usare lo switch /uninstall
http://www.iis.net/default.aspx?tabid=2&subtabid=25&i=1345
Demo
CGI vs. FastCGI
http://blogs.msdn.com/pietrobr | Pietro Brambati
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
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
IIS 7 e PHPOutput 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)
http://blogs.iis.net/ksingla/archive/2006/11/16/caching-in-iis7.aspx
<caching>
<profiles enabled=”true”>
<add extension=”.php” policy=”CacheForTimePeriod” duration=”00:30:00”
varyByQueryString=”action” varyByHeaders=”User-Agent”/>
</profiles>
</caching>
Demo
IIS 7
Output Cache
Phalanger
http://blogs.msdn.com/pietrobr | Pietro Brambati
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
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
Demo
Personal Web Site con Phalanger
http://blogs.msdn.com/pietrobr | Pietro Brambati
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
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
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
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.