Php iis microsoft

Preview:

DESCRIPTION

Php iis microsoft

Citation preview

MICROSOFT, IIS7 AND PHP

Nick HodgeMicrosoft AustraliaProfessional Geeknhodge@microsoft.com

Jorke OdolphiMicrosoft AustraliaWeb Infrastructure Evangelistjorkeo@microsoft.com

This is not your father’s Microsoft

IIS Request Processing

Server functionality is split into ~ 40 modules...Modules plug into a generic request pipeline…Modules extend server functionality through a public module API.

Send ResponseLog Compress

NTLM Basic

Determine

Handler

CGIStatic File

ISAPI

AuthenticationAnon

SendResponse

Authentication

Authorization

ResolveCache

ExecuteHandler

UpdateCache…

ASP.NET

PHP

Monolithic implementation Install all or nothing…

Extend server functionality only through ISAPI…

IIS 6.0 ASP.NET Processing

Runtime limitations

Only sees ASP.NET requests

Feature duplication

Send ResponseLog Compress

NTLM Basic

Determine

Handler

CGIStatic File

ISAPI

AuthenticationAnon

AuthenticationForms

Windows

Map Handler

ASPXTrace

……

aspnet_isapi.dll

IIS6 Application Framework support

Common Gateway Interface (CGI) for CGI and PHP applications Benefits

Very simple to implement and use – single-threaded execution

Disadvantages Poor performance due to high process creation cost Creates and passes request data to a new CGI

process Waits for CGI process to produce response Shuts down CGI process

IIS6 Application Framework support

Internet Server Application Programming Interface (ISAPI) Benefit of ISAPI

Can be extremely fast when written correctly

Disadvantage of ISAPI Must be thread-safe (many PHP

extensions are not!) Requires development in C++

PHP Setup

Binaries •Use zip file with non-thread safe binaries•OR download PHP installer

Configure php.ini•fastcgi.impersonate = 1•cgi.fix_pathinfo = 1•open_basedir = “C:\inetpub\website\Folder”

Configure IIS•Enable CGI•Configure FastCGI handler mapping for *.php•Change FastCGI settings

Test that it works •C:\php\php-cgi.exe –info•http://localhost/phpinfo.php

Per-site PHP configurationConfiguring FastCGI process pool

<fastCgi> <application fullPath="C:\PHP\php-cgi.exe" arguments="-d my.website=website1"> <environmentVariables> <environmentVariable name="PHPRC" value="C:\WebSites\website1" /> </environmentVariables> </application></fastCgi>

Combination of fullPath and arguments uniquely identify FastCGI process pool definition

PHPRC environment variable contains path to the php.ini file

IIS Extensions

Mod_rewrite support for URL rewriting

SQLServer 2008

Express version with Management Studio Free (as in beer) download

MySQL .NET drivers (data import/export)

Open source: Microsoft SQLServer Driver for PHP

Resources

http://learn.iis.net

http://port25.technet.com

http://codeplex.com/http://port25.technet.com/archive/2008/07/25/osp.aspx

Recommended