Download - Php iis microsoft
MICROSOFT, IIS7 AND PHP
Nick HodgeMicrosoft AustraliaProfessional [email protected]
Jorke OdolphiMicrosoft AustraliaWeb Infrastructure [email protected]
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