artur Żarski, php na windows
DESCRIPTION
TRANSCRIPT
![Page 2: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/2.jpg)
Plan spotkania
IIS7 jako platforma PHP na Windows SQL Server Driver for PHP Expression Web 2 Inne możliwości współdziałania
![Page 3: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/3.jpg)
.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
![Page 4: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/4.jpg)
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
![Page 5: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/5.jpg)
Microsoft i OpenSource
?
![Page 6: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/6.jpg)
![Page 7: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/7.jpg)
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
![Page 8: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/8.jpg)
IIS7 - platforma
![Page 9: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/9.jpg)
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
![Page 10: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/10.jpg)
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)
![Page 11: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/11.jpg)
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• …
![Page 12: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/12.jpg)
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() { }
}
![Page 13: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/13.jpg)
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
![Page 14: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/14.jpg)
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
![Page 15: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/15.jpg)
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
![Page 16: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/16.jpg)
PHP na Windows
![Page 17: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/17.jpg)
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
![Page 18: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/18.jpg)
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
![Page 19: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/19.jpg)
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
![Page 20: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/20.jpg)
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
![Page 21: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/21.jpg)
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");
![Page 22: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/22.jpg)
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
![Page 23: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/23.jpg)
PHP na Windows – dalsze możliwości
![Page 24: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/24.jpg)
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
![Page 25: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/25.jpg)
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
![Page 26: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/26.jpg)
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
![Page 27: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/27.jpg)
Tworzenie obiektów COM
<?php $myCOMObject =new
COM("COMObject.COMClass"); $myCOMObject->someMethod(“Some
Argument”);?>
![Page 28: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/28.jpg)
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
![Page 29: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/29.jpg)
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
![Page 30: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/30.jpg)
.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
![Page 31: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/31.jpg)
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
![Page 32: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/32.jpg)
Podsumowanie
![Page 33: Artur Żarski, PHP na Windows](https://reader033.vdocuments.site/reader033/viewer/2022061117/54686dd3af7959d8018b4f14/html5/thumbnails/33.jpg)
© 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.