PHP na Windows

Artur Żarski
arturz@microsoft.com
Developer Evangelist
Microsoft Corporation
Plan spotkania

   IIS7 jako platforma
   PHP na Windows
   SQL Server Driver for PHP
   Expression Web 2
    Inne moż...
.NET Framework 3.5
                                                  CLR Add-in             Additional
  LINQ           AS...
VS.NET                     System.Web (ASP.NET)                                          System.WinForms
                 ...
Przykłady projektów PHP
Phalanger
Azure API for PHP

PHP4VS

WindowsLive for PHP

PHPOpenXML API

PHP Linq

PHPRPC for .NE...
Zalety IIS 7.0
   Modularna
                                       Możliwość
                    Konfiguracja
architektura...
Dlaczego warto przejść na IIS7? (1/2)

 Konfiguracja w pliku tekstowym
  • Apache: httpd.conf ale wymaga restartu przez a...
Dlaczego warto przejść na IIS7? (2/2)

 Zaawansowana diagnostyka oraz rozwiązywanie
  problemów
  • 'failed request traci...
IIS7 .NET Extensibility – Moduł vs. Handler
        Moduły dostarczają usługi dla wszystkich żądań

              moduł B...
Skrypty: nowy WMI Provider

 Set oService = GetObject(quot;winmgmts:rootWebAdministrationquot;)

 ' Tworzymy binding dla w...
Appcmd – listowanie i filtrowanie
Potężne narzędzie do zarządzania IIS 7 z linii komend

 C:>   appcmd list sites
 SITE   ...
Programowanie: Microsoft.Web.Administration
Nowe APIs pozwala programistom na pisanie własnych narzędzi do wdrażania,
zarz...
Najważniejsze elementy
  ADOdb
    Pierwszy projekt Open Source,
    w którym MS brał udział



 SQL Server PHP Driver
   ...
IIS FastCGI
 Solidna platforma dla aplikacji PHP
  • Otwarty standard
  • Wspierane przez środowisko PHP oraz wiele innyc...
IIS FastCGI – Zasada działania

                                      FastCGI process pool for
                           ...
Uruchomienie aplikacji PHP na IIS 7.0

 Łatwy setup:
  • Instalacja PHP z FastCGI
  • Wdrożenie aplikacji
 Kompatybilnoś...
SQL Server PHP Driver
 Zalety:
  Pozwala na pewną i skalowaną integrację z SQL Server
  Tworzenie aplikacji na silnym i ...
Microsoft Expression Web 2
        ®             ®




              •   PHP 5.2.5, Fast CGI
              •   Intellisens...
PHP na Windows – dalsze możliwości
PHP i Silverlight
  Działa na IIS i Apache
  Wymaga dodania dwóch MIME types dla
   Silverlight
   • .xaml – application...
PHP i ASP.NET Membership + AJAX

 ASP.NET
  • Kompletne zarządzane API
 PHP on Windows
  • Microsoft SQL Server Driver f...
PHP i obiekty COM
 Czym jest COM (Component Object Model) ?
 PHP tak naprawdę nie używa COM.
 COM jest dowolnym językie...
Tworzenie obiektów COM


<?php
   $myCOMObject =new
   COM(quot;COMObject.COMClassquot;);
   $myCOMObject->someMethod(“Som...
Inne możliwości

 Microsoft Office
 Web Services
  •   NuSOAP
  •   PHP 5 – Native SOAP Extension
  •   ezSOAP
  •   PEA...
PHP – „Wish List”
   Natywne API dla Active Directory
   AzMan API dla PHP
   PHP Bridge dla ADAM
   ASP.NET 2.0 Authe...
.NET Framework 3.5
                                                  CLR Add-in             Additional
  LINQ           AS...
VS.NET                     System.Web (ASP.NET)                                          System.WinForms
                 ...
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be...
Artur Żarski, PHP na Windows
Artur Żarski, PHP na Windows
Artur Żarski, PHP na Windows
Artur Żarski, PHP na Windows
Artur Żarski, PHP na Windows
Upcoming SlideShare
Loading in...5
×

Artur Żarski, PHP na Windows

1,929
-1

Published on

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
1,929
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Artur Żarski, PHP na Windows

  1. 1. PHP na Windows Artur Żarski arturz@microsoft.com Developer Evangelist Microsoft Corporation
  2. 2. Plan spotkania  IIS7 jako platforma  PHP na Windows  SQL Server Driver for PHP  Expression Web 2 Inne możliwości współdziałania 
  3. 3. .NET Framework 3.5 CLR Add-in Additional LINQ ASP.NET 3.5 Framework Enhancements .NET Framework 3.0 + SP 1 Windows Windows Windows Windows Presentation Communication Workflow CardSpace Foundation Foundation Foundation .NET Framework 2.0 + SP 1 Zarządzanie Serwer aplikacyjny .NET 3.0 WS-Management Role serwera IIS 7 Monitorowanie Podstawy Core Transakcje Odzyskiwanie Sieć i komunikacja Przechowywanie Zintegrowany Hypervisor
  4. 4. VS.NET System.Web (ASP.NET) System.WinForms UI SessionState Design ComponentModel C# HtmlControls Caching Security WebControls JScript Configuration System.Drawing VB Simple Web Services Drawing2D Printing VC/MC++ Protocols Imaging Text Discovery Description Debugger System.Data (ADO.NET) System.Xml Designers XSLT Serialization ADO SQL SDK Tools XPath Design Adapters CorDBG System ILAsm Collections IO Security Runtime InteropServices Configuration Net ServiceProcess ILDbDump Remoting Diagnostics Reflection Text SN Serialization Globalization Resources Threading ILDAsm Common Language Runtime MetaInfo JIT GC App Domain Loader PEVerify MSIL Common Type System Class Loader Platform Abstraction Threads Boot Loader Sync Timers Networking Filesystem
  5. 5. Przykłady projektów PHP Phalanger Azure API for PHP PHP4VS WindowsLive for PHP PHPOpenXML API PHP Linq PHPRPC for .NET Excel document creation via OpenXML for PHP
  6. 6. Zalety IIS 7.0 Modularna Możliwość Konfiguracja architektura aby systemu oparta zdalnego zredukować zarządzania na XML możliwość ataku Możliwość Integracja z Zaawansowana rozszerzenia IIS7 WMS oraz Media przy użyciu kodu diagnostyka Pack zarządzanego
  7. 7. Dlaczego warto przejść na IIS7? (1/2)  Konfiguracja w pliku tekstowym • Apache: httpd.conf ale wymaga restartu przez admina • IIS7: bez restartu + command line  Rozproszona konfiguracja • Apache: .htaccess • Asp.net: web.config <system.webServer>, konfiguracja per-URL (per żądanie)  Rozszerzalność (C/C++/C#/VB.NET/ 30+ innych języków ...) • Nowy interfejs CHttpModule, łatwo zastąpić swoim • SQL Logging (logowanie W3C w mniej niż 50 linii kodu)
  8. 8. Dlaczego warto przejść na IIS7? (2/2)  Zaawansowana diagnostyka oraz rozwiązywanie problemów • 'failed request tracing„ • request monitoring and runtime data  Administracja i API • AppCmd.exe • WMI provider • Microsoft.Web.Administration  Inne: • Application Request Routing • Web Deployment Tool • Bitrate Throttling / Smooth Streaming • …
  9. 9. IIS7 .NET Extensibility – Moduł vs. Handler Moduły dostarczają usługi dla wszystkich żądań  moduł Basic Authentication • moduł Compression • Handlery dostarczają usługi dla specyficznych rozszerzeń  ISAPI handler (.dll) • Static handler (.htm, .jpg, .gif, etc) • IIS 7 pozwala na zarządzanie natywnymi i „zarządzanymi” modułami oraz  handlerami. public class BasicAuthenticationModule : System.Web.IHttpModule { void Init(HttpApplication context) { } void Dispose() { } }
  10. 10. Skrypty: nowy WMI Provider Set oService = GetObject(quot;winmgmts:rootWebAdministrationquot;) ' Tworzymy binding dla witryny Set oBinding = oService.Get(quot;BindingElementquot;).SpawnInstance_ oBinding.BindingInformation = quot;*:80:www.site.comquot; oBinding.Protocol = quot;httpquot; ‘ Tworzymy witrynę oService.Get(quot;Sitequot;).Create _ quot;NewSitequot;, array(oBinding), quot;C:inetpubwwwrootquot; ' Tworzymy aplikację oService.Get(quot;Applicationquot;).Create _ quot;/fooquot;, quot;NewSitequot;, quot;C:inetpubwwwrootfooquot;
  11. 11. Appcmd – listowanie i filtrowanie Potężne narzędzie do zarządzania IIS 7 z linii komend C:> appcmd list sites SITE quot;Default Web Sitequot; (id:1,bindings:HTTP/*:80:,state:Started) SITE quot;Site1quot; (id:2,bindings:http/*:81:,state:Started) SITE quot;Site2quot; (id:3,bindings:http/*:82:,state:Stopped) C:> appcmd list requests REQUEST quot;fb0000008000000equot; (url:GET /wait.aspx?time=10000,time:4276 msec,client:localhost) C:> appcmd list requests /apppool.name:DefaultAppPool C:> appcmd list requests /wp.name:3567 C:> appcmd list requests /site.id:1
  12. 12. Programowanie: Microsoft.Web.Administration Nowe APIs pozwala programistom na pisanie własnych narzędzi do wdrażania, zarządzania ASP.NET oraz IIS ServerManager iisManager = new ServerManager(); foreach(WorkerProcess w3wp in iisManager.WorkerProcesses) { Console.WriteLine(quot;W3WP ({0})quot;, w3wp.ProcessId); foreach (Request request in w3wp.GetRequests(0)) { Console.WriteLine(quot;{0} - {1},{2},{3}quot;, request.Url, request.ClientIPAddr, request.TimeElapsed, request.TimeInState); } }
  13. 13. Najważniejsze elementy ADOdb Pierwszy projekt Open Source, w którym MS brał udział SQL Server PHP Driver SQL Server Driver for PHP został stworzony aby umożliwić współpracę PHP z SQL Server IIS7+ FastCGI Podstawa PHP na Windows Expression Web 2.0 Wsparcie narzędzi MS do pracy z PHP
  14. 14. IIS FastCGI  Solidna platforma dla aplikacji PHP • Otwarty standard • Wspierane przez środowisko PHP oraz wiele innych frameworków open source (RoR, Perl, Python, …) • Ulepszenie CGI • Web server tworzy proces FastCGI dla pierwszego żądania • Web server wykorzystuje istniejące procesy FastCGI dla następnych żądań • Konfigurowalne zasoby  vs. ISAPI: • Dostarcza wymaganą stabilność dla aplikacji PHP typu non-thread- safe  vs. CGI: • Drastyczny wzrost wydajności
  15. 15. IIS FastCGI – Zasada działania FastCGI process pool for PHP5 FastCGI over named pipes lub TCP php-cgi.exe FastCGI process pool for PHP4 Request queue php.exe
  16. 16. Uruchomienie aplikacji PHP na IIS 7.0  Łatwy setup: • Instalacja PHP z FastCGI • Wdrożenie aplikacji  Kompatybilność: • Top 10 aplikacji PHP testowane i udokumentowane na www.iis.net/php • Łatwa migracja ze wsparciem Url Rewrite
  17. 17. SQL Server PHP Driver Zalety:  Pozwala na pewną i skalowaną integrację z SQL Server  Tworzenie aplikacji na silnym i bezpiecznym silniku BD  BI oraz SQL Reporting Services Konfiguracja:  Php.ini -> extension=php_sqlsrv.dll Połączenie:  $serverName = quot;(local)quot;;  $connectionOptions = array(quot;Databasequot;=>quot;AdventureWorksquot;);
  18. 18. Microsoft Expression Web 2 ® ® • PHP 5.2.5, Fast CGI • Intellisense, code-coloring oraz snippety • Podgląd „PHP include” w trybie projektowanie • Podgląd stron PHP na różnych zainstalowanych przeglądarkach przy pomocy wbudowanego Webservera
  19. 19. PHP na Windows – dalsze możliwości
  20. 20. PHP i Silverlight  Działa na IIS i Apache  Wymaga dodania dwóch MIME types dla Silverlight • .xaml – application/xaml+xml • .xab – application/x-silverlight-app  Brak ustawień = błąd 404.3
  21. 21. PHP i ASP.NET Membership + AJAX  ASP.NET • Kompletne zarządzane API  PHP on Windows • Microsoft SQL Server Driver for PHP • Web Services • .NET / COM  PHP On Linux • FreeTDS • Sockets • Web Services
  22. 22. PHP i obiekty COM  Czym jest COM (Component Object Model) ?  PHP tak naprawdę nie używa COM.  COM jest dowolnym językiem Windows • VB • C++ • Delphi • Python • Perl • Cobol • Fortran
  23. 23. Tworzenie obiektów COM <?php $myCOMObject =new COM(quot;COMObject.COMClassquot;); $myCOMObject->someMethod(“Some Argument”); ?>
  24. 24. Inne możliwości  Microsoft Office  Web Services • NuSOAP • PHP 5 – Native SOAP Extension • ezSOAP • PEAR::SOAP  Microsoft .NET  Microsoft Services (np. Live, Azure)  Phalanger
  25. 25. PHP – „Wish List”  Natywne API dla Active Directory  AzMan API dla PHP  PHP Bridge dla ADAM  ASP.NET 2.0 Authentication Provider dla PHP  A CDO / Exchange Bridge dla PHP  PHP-Nuke, Mambo, etc. etc. • Na MS SQL Server • Opcjonalnie dla Phalanger • Opcjonalnie dla AD
  26. 26. .NET Framework 3.5 CLR Add-in Additional LINQ ASP.NET 3.5 Framework Enhancements .NET Framework 3.0 + SP 1 Windows Windows Windows Windows Presentation Communication Workflow CardSpace Foundation Foundation Foundation .NET Framework 2.0 + SP 1 Zarządzanie Serwer aplikacyjny .NET 3.0 WS-Management Role serwera IIS 7 Monitorowanie Podstawy Core Transakcje Odzyskiwanie Sieć i komunikacja Przechowywanie Zintegrowany Hypervisor
  27. 27. VS.NET System.Web (ASP.NET) System.WinForms UI SessionState Design ComponentModel C# HtmlControls Caching Security WebControls JScript Configuration System.Drawing VB Simple Web Services Drawing2D Printing VC/MC++ Protocols Imaging Text Discovery Description Debugger System.Data (ADO.NET) System.Xml Designers XSLT Serialization ADO SQL SDK Tools XPath Design Adapters CorDBG System ILAsm Collections IO Security Runtime InteropServices Configuration Net ServiceProcess ILDbDump Remoting Diagnostics Reflection Text SN Serialization Globalization Resources Threading ILDAsm Common Language Runtime MetaInfo JIT GC App Domain Loader PEVerify MSIL Common Type System Class Loader Platform Abstraction Threads Boot Loader Sync Timers Networking Filesystem
  28. 28. © 2008 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.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×