• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Artur Żarski, PHP na Windows
 

Artur Żarski, PHP na Windows

on

  • 3,630 views

 

Statistics

Views

Total Views
3,630
Views on SlideShare
3,505
Embed Views
125

Actions

Likes
0
Downloads
11
Comments
0

8 Embeds 125

http://hostingmeeting.pl 59
http://webhosting.pl 25
http://www.biznes20.pl 15
http://windowshosting.pl 12
http://barcamp.pl 8
http://www.slideshare.net 4
http://www.barcamp.pl 1
http://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Artur Żarski, PHP na Windows Artur Żarski, PHP na Windows Presentation Transcript

    • 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żliwości współdziałania 
    • .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
    • 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
    • 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
    • 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
    • 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)
    • 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 • …
    • 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() { } }
    • 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;
    • 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
    • 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); } }
    • 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
    • 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
    • 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
    • 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
    • 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;);
    • 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
    • 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/xaml+xml • .xab – application/x-silverlight-app  Brak ustawień = błąd 404.3
    • 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
    • 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
    • Tworzenie obiektów COM <?php $myCOMObject =new COM(quot;COMObject.COMClassquot;); $myCOMObject->someMethod(“Some Argument”); ?>
    • 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
    • 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
    • .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
    • 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
    • © 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.