1 / 15

Hosting PHP on IIS 7.0 Best Practices for shared hosting

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.

emory
Download Presentation

Hosting PHP on IIS 7.0 Best Practices for shared hosting

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hosting PHP on IIS 7.0Best Practices for shared hosting Microsoft® Hosting Deployment Accelerator

  2. Agenda • PHP Setup • FastCGI architecture • Hosting guidance • Multiple PHP versions • Per-site PHP configuration • Providing URL rewriting • Managing CPU usage • Summary

  3. PHP setup steps

  4. FastCGI Handler Architecture IIS Worker Process FastCGI protocol over named pipes or TCP FastCGI process pool for PHP5 Requestqueue

  5. Recommended configuration FastCGI Process Pool App Pool #1 (user1) Web site #1 FastCGI Process Pool App Pool #2 (user2) Web site #2 … … FastCGI Process pool App Pool #N (userN) Web site #N

  6. Recommended configuration • Configure security isolation • One app pool per web site • Enable FastCGI impersonation • Prevent failures caused by PHP recycling • set PHP_FCGI_MAX_REQUESTS >= instanceMaxRequests • For higher site density: • use dynamicIdleThreshold • reduce idleTimeout • reduce maxInstances (may affect performance)

  7. Enhance your PHP hosting offer

  8. Multiple PHP versions Process Pool for PHP 5 App Pool #1 (user1) Web site #1 C:\PHP526\php-cgi.exe Process Pool for PHP 4 App Pool #2 (user2) Web site #2 C:\PHP447\php.exe

  9. Per-site PHP configurationConfiguring FastCGI process pool Combination of fullPath and arguments uniquely identify FastCGI process pool definition <fastCgi> <applicationfullPath="C:\PHP\php-cgi.exe" arguments="-d my.website=website1"> <environmentVariables> <environmentVariablename="PHPRC" value="C:\WebSites\website1" /> </environmentVariables> </application> </fastCgi> PHPRC environment variable contains path to the php.ini file

  10. Per-site PHP configurationConfiguring Handler Mapping <system.webServer> <handlersaccessPolicy="Read, Script"> <addname="PHP via FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\PHP\php-cgi.exe|-d my.website=website2" resourceType="Unspecified" requireAccess="Script" /> </handlers> </system.webServer> Reference FastCGI process pool by concatenating [fullPath]|[arguments]

  11. Providing URL rewriting

  12. Manage CPU utilization • Windows Server Resource Manager (WSRM) • Available in all SKU’s of WS2008 • Ensures that process gets *at least* the configured CPU percentage • Kicks in only if overall CPU load is more than 70% • IIS team tested with 4000 web sites

  13. Using WSRM

  14. Best practices summary • Follow IIS 7.0 security isolation guidelines • Leverage FastCGI/IIS features to enhance hosting offer: • Multiple PHP versions • Per-site PHP configuration • URL rewriting • Use WSRM to manage w3wp.exe and php-cgi.exe CPU utilization More information at http://learn.iis.net/page.aspx/208/fastcgi-with-php

More Related