Upload
webhostingpl
View
3.745
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
PHP na Windows
Artur Ż[email protected] EvangelistMicrosoft 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
.NET Framework 3.0 + SP 1
.NET Framework 2.0 + SP 1
LINQ ASP.NET 3.5CLR Add-inFramework
Additional Enhancement
s
Windows Presentation Foundation
Windows Communicati
on Foundation
Windows Workflow
Foundation
Windows CardSpace
Core
Zintegrowany Hypervisor
Podstawy
Serwer aplikacyjny Zarządzanie
.NET 3.0
IIS 7 Monitorowanie
WS-Management
Transakcje Odzyskiwanie
Sieć i komunikacjaPrzechowywanie
Role
serw
era
VS.NET
Common Language Runtime
System
System.Data (ADO.NET) System.Xml
Design
ADO
Adapters
SQL
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security RuntimeInteropServices
Remoting
Serialization
XPath
XSLT Serialization
System.Drawing
JIT
GC
MSIL
App Domain Loader
Common Type System Class Loader
System.Web (ASP.NET)
Configuration
SessionStateCaching
Security
Simple Web Services
DescriptionProtocols
UIHtmlControls
WebControls
Discovery
C#
VC/MC++ Imaging
Drawing2D
Text
Printing
JScript
VB
Platform Abstraction
Boot Loader SyncThreads NetworkingTimers Filesystem
System.WinForms
Design ComponentModel
Debugger
Designers
SDK Tools
CorDBG
ILAsm
ILDbDump
SN
ILDAsm
MetaInfo
PEVerify
Microsoft i OpenSource
?
Przykłady projektów PHP
Azure API for PHP
Phalanger
PHP4VS
WindowsLive for PHP
PHPOpenXML API
PHPRPC for .NET
Excel document creation via OpenXML for PHP
PHP Linq
IIS7 - platforma
Zalety IIS 7.0Modularna
architektura aby zredukować
możliwość ataku
Konfiguracja systemu
oparta na XML
Możliwość zdalnego
zarządzania
Zaawansowana
diagnostyka
Integracja z WMS oraz
Media Pack
Możliwość rozszerzenia IIS7 przy użyciu kodu
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• …
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.
IIS7 .NET Extensibility – Moduł vs. Handler
public class BasicAuthenticationModule : System.Web.IHttpModule {
void Init(HttpApplication context) { }
void Dispose() { }
}
Set oService = GetObject("winmgmts:root\WebAdministration")
' Tworzymy binding dla witrynySet oBinding = oService.Get("BindingElement").SpawnInstance_oBinding.BindingInformation = "*:80:www.site.com"oBinding.Protocol = "http"
‘ Tworzymy witrynęoService.Get("Site").Create _ "NewSite", array(oBinding), "C:\inetpub\wwwroot"
' Tworzymy aplikacjęoService.Get("Application").Create _ "/foo", "NewSite", "C:\inetpub\wwwroot\foo"
Skrypty: nowy WMI Provider
C:\> appcmd list sitesSITE "Default Web Site" (id:1,bindings:HTTP/*:80:,state:Started)SITE "Site1" (id:2,bindings:http/*:81:,state:Started)SITE "Site2" (id:3,bindings:http/*:82:,state:Stopped)
C:\> appcmd list requestsREQUEST "fb0000008000000e" (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
Appcmd – listowanie i filtrowanie
Potężne narzędzie do zarządzania IIS 7 z linii komend
ServerManager iisManager = new ServerManager();
foreach(WorkerProcess w3wp in iisManager.WorkerProcesses) { Console.WriteLine("W3WP ({0})", w3wp.ProcessId); foreach (Request request in w3wp.GetRequests(0)) { Console.WriteLine("{0} - {1},{2},{3}", request.Url, request.ClientIPAddr, request.TimeElapsed, request.TimeInState); }}
Programowanie: Microsoft.Web.AdministrationNowe APIs pozwala programistom na pisanie własnych narzędzi do wdrażania, zarządzania ASP.NET oraz IIS
PHP na Windows
Najważniejsze elementy
ADOdbPierwszy projekt Open Source, w którym MS brał udział
SQL Server PHP DriverSQL Server Driver for PHP został stworzony aby umożliwić współpracę PHP z SQL Server
IIS7+ FastCGIPodstawa PHP na Windows
Expression Web 2.0Wsparcie 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 PHP4
php.exe
Read Configuration
Authenticate
Authorize
Map Request
Handle Request
Send Response
Log Request
FastCGI handler
ASP.NET
Static
Request queue
FastCGI process pool for PHP5
php-cgi.exe
FastCGI over named pipes lub TCP
IIS Worker Process
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 = "(local)"; $connectionOptions =
array("Database"=>"AdventureWorks");
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("COMObject.COMClass"); $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
.NET Framework 3.0 + SP 1
.NET Framework 2.0 + SP 1
LINQ ASP.NET 3.5CLR Add-inFramework
Additional Enhancement
s
Windows Presentation Foundation
Windows Communicati
on Foundation
Windows Workflow
Foundation
Windows CardSpace
Core
Zintegrowany Hypervisor
Podstawy
Serwer aplikacyjny Zarządzanie
.NET 3.0
IIS 7 Monitorowanie
WS-Management
Transakcje Odzyskiwanie
Sieć i komunikacjaPrzechowywanie
Role
serw
era
VS.NET
Common Language Runtime
System
System.Data (ADO.NET) System.Xml
Design
ADO
Adapters
SQL
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security RuntimeInteropServices
Remoting
Serialization
XPath
XSLT Serialization
System.Drawing
JIT
GC
MSIL
App Domain Loader
Common Type System Class Loader
System.Web (ASP.NET)
Configuration
SessionStateCaching
Security
Simple Web Services
DescriptionProtocols
UIHtmlControls
WebControls
Discovery
C#
VC/MC++ Imaging
Drawing2D
Text
Printing
JScript
VB
Platform Abstraction
Boot Loader SyncThreads NetworkingTimers Filesystem
System.WinForms
Design ComponentModel
Debugger
Designers
SDK Tools
CorDBG
ILAsm
ILDbDump
SN
ILDAsm
MetaInfo
PEVerify
Podsumowanie
© 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.