Hosting PHP on IIS 7.0 Best Practices for shared hosting

of 15 /15
1 Hosting PHP on IIS 7.0 Best Practices for shared hosting Microsoft® Hosting Deployment Accelerator

Embed Size (px)

description

Hosting PHP on IIS 7.0 Best Practices for shared hosting. Microsoft® Hosting Deployment Accelerator. Agenda. PHP Setup FastCGI architecture Hosting guidance Multiple PHP versions Per-site PHP configuration Providing URL rewriting Managing CPU usage Summary. PHP setup steps. - PowerPoint PPT Presentation

Transcript of Hosting PHP on IIS 7.0 Best Practices for shared hosting

Hosting PHP on IIS 7.0

Hosting PHP on IIS 7.0Best Practices for shared hostingMicrosoftHosting Deployment Accelerator#AgendaPHP SetupFastCGI architectureHosting guidanceMultiple PHP versionsPer-site PHP configurationProviding URL rewritingManaging CPU usageSummary#PHP setup steps#3FastCGI process pool for PHP5FastCGI Handler ArchitectureIIS Worker Process

FastCGI protocol over named pipes or TCPRequest queue#Understanding the configuration options4App Pool #1 (user1) Web site #1Recommended configuration

FastCGI Process Pool

App Pool #2 (user2) Web site #2

FastCGI Process Pool

App Pool #N (userN) Web site #N

FastCGI Process pool

#5Recommended configuration Configure security isolationOne app pool per web siteEnable FastCGI impersonationPrevent failures caused by PHP recyclingset PHP_FCGI_MAX_REQUESTS >= instanceMaxRequestsFor higher site density:use dynamicIdleThresholdreduce idleTimeoutreduce maxInstances (may affect performance)#Enhance your PHP hosting offer#Multiple PHP versionsApp Pool #1 (user1) Web site #1

Process Pool for PHP 5

App Pool #2 (user2) Web site #2

Process Pool for PHP 4

C:\PHP526\php-cgi.exeC:\PHP447\php.exe#Per-site PHP configurationApp Pool #1 (user1) Web site #1

Process Pool #1

App Pool #2 (user2) Web site #2

Process Pool #2

PHPRC=C:\inetpub\website1\PHPRC=C:\inetpub\website2#Per-site PHP configurationConfiguring FastCGI process pool

Combination of fullPath and arguments uniquely identify FastCGI process pool definitionPHPRC environment variable contains path to the php.ini file#Per-site PHP configurationConfiguring Handler Mapping

Reference FastCGI process pool by concatenating [fullPath]|[arguments]#Providing URL rewriting

#Manage CPU utilizationWindows Server Resource Manager (WSRM)Available in all SKUs of WS2008Ensures that process gets *at least* the configured CPU percentageKicks in only if overall CPU load is more than 70%IIS team tested with 4000 web sites#Using WSRM

#Best practices summaryFollow IIS 7.0 security isolation guidelinesLeverage FastCGI/IIS features to enhance hosting offer:Multiple PHP versionsPer-site PHP configurationURL rewritingUse WSRM to manage w3wp.exe and php-cgi.exe CPU utilizationMore information at http://learn.iis.net/page.aspx/208/fastcgi-with-php ##Q & A