SlideShare une entreprise Scribd logo
1  sur  28
 
Jorke Odolphi Microsoft Australia web platform architect evangelist [email_address] @jorke
PHP Developers longzheng
So Bacon has feathers now? Contributing to Open Source Open Specification Promise Apache Software Foundation
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. Authorization ResolveCache UpdateCache … … … Monolithic implementation Install  all or nothing … Extend server functionality only through  ISAPI … Send Response Log Compress NTLM Basic Determine  Handler CGI Static File ISAPI Authentication Anon SendResponse Authentication ExecuteHandler ASP.NET PHP
IIS 6.0 ASP.NET Processing Runtime limitations Only sees ASP.NET requests Feature duplication … … … … aspnet_isapi.dll Send Response Log Compress NTLM Basic Determine  Handler CGI Static File ISAPI Authentication Anon Authentication Forms Windows Map Handler ASPX Trace …
IIS6 Application Framework support ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IIS6 Application Framework support ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IIS 7.0 ASP.NET Request Processing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Authorization ResolveCache UpdateCache … … … … aspnet_isapi.dll Log Compress Basic Static File ISAPI Anon SendResponse Authentication ExecuteHandler Authentication Forms Windows Map Handler ASPX Trace …
New Configuration  NET  global settings .NET Framework  Global web.config machine.config IIS 7 applicationHost.config Site Root web.config <system.web> .NET settings .. <system.webServer> IIS 7 Delegated settings ASP.NET  global settings Global settings  and location tags
PHP Setup
Per-site PHP configuration Configuring FastCGI process pool < fastCgi > < application   fullPath =&quot;C:HPhp-cgi.exe&quot;  arguments =&quot;-d my.website=website1&quot;> < environmentVariables > < environmentVariable   name =&quot;PHPRC&quot;  value =&quot;C:ebSitesebsite1&quot; /> </ environmentVariables > </ application > </ fastCgi > Combination of  fullPath  and  arguments  uniquely identify FastCGI process pool definition PHPRC environment variable contains path to the php.ini file
Per-site PHP configuration Configuring Handler Mapping < system.webServer > < handlers   accessPolicy =&quot;Read, Script&quot;> < add   name =&quot;PHP via FastCGI&quot;  path =&quot;*.php&quot;  verb =&quot;*&quot;  modules =&quot;FastCgiModule&quot;  scriptProcessor =&quot;C:HPhp-cgi.exe|-d my.website=website2&quot; resourceType =&quot;Unspecified&quot;  requireAccess =&quot;Script&quot; /> </ handlers > </ system.webServer > Reference FastCGI process pool by concatenating [fullPath]|[arguments]
PHP Setup Feature Delegation Remote Administration Web Server Core Integration
Thread safe Non Thread Safe
PHP with FastCGI ,[object Object],[object Object],[object Object],[object Object],[object Object],Thread Safe Non-Thread Safe
FastCGI Handler Architecture IIS Worker Process Request queue FastCGI process pool for PHP5 php-cgi.exe FastCGI process pool for PHP4 php.exe FastCGI protocol over named pipes or TCP
Best Practices for Running PHP on IIS7 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Best Practices for Running PHP on IIS7 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Manage CPU utilization ,[object Object],[object Object],[object Object],[object Object],[object Object]
Performance  Scaling Out WSRM
Performance Best Practices ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Performance Best Practices ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Performance Best Practices ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Performance Boosting ,[object Object],[object Object],[object Object],[object Object]
IIS Extensions ,[object Object]
Jorke Odolphi [email_address]
SID Injection AppPool: newPool username: newPoolUser password: <password> LogonUser AccessCheck AccessCheck Service Host (SVCHost.EXE) Windows Process Activation Service (WAS) World Wide Web Service (W3SVC)  applicationhost.config Token Token NewPoolWwwrootdefault.htm ACL OK OtherpoolWwwrootdefault.htm ACL Denied

Contenu connexe

Tendances

What's new in xamarin.android, Jonathan Pryor
What's new in xamarin.android, Jonathan PryorWhat's new in xamarin.android, Jonathan Pryor
What's new in xamarin.android, Jonathan Pryor
Xamarin
 
Performance Metrics in a Day with Selenium
Performance Metrics in a Day with SeleniumPerformance Metrics in a Day with Selenium
Performance Metrics in a Day with Selenium
Mark Watson
 

Tendances (20)

Load Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionLoad Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusion
 
Restful API's with ColdFusion
Restful API's with ColdFusionRestful API's with ColdFusion
Restful API's with ColdFusion
 
FAST for SharePoint Deep Dive
FAST for SharePoint Deep DiveFAST for SharePoint Deep Dive
FAST for SharePoint Deep Dive
 
Building an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAX
Building an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAXBuilding an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAX
Building an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAX
 
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember DataIn The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
 
Hidden gems in cf2016
Hidden gems in cf2016Hidden gems in cf2016
Hidden gems in cf2016
 
Locking Down CF Servers
Locking Down CF ServersLocking Down CF Servers
Locking Down CF Servers
 
ColdFusion builder plugins
ColdFusion builder pluginsColdFusion builder plugins
ColdFusion builder plugins
 
Command Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, AutomationCommand Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, Automation
 
10 Reasons ColdFusion PDFs should rule the world
10 Reasons ColdFusion PDFs should rule the world10 Reasons ColdFusion PDFs should rule the world
10 Reasons ColdFusion PDFs should rule the world
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
 
Running PHP on Windows Technical Overview
Running PHP on Windows Technical OverviewRunning PHP on Windows Technical Overview
Running PHP on Windows Technical Overview
 
Upgrading to Alfresco 6
Upgrading to Alfresco 6Upgrading to Alfresco 6
Upgrading to Alfresco 6
 
Keep Applications Online
Keep Applications OnlineKeep Applications Online
Keep Applications Online
 
Realtime with websockets
Realtime with websocketsRealtime with websockets
Realtime with websockets
 
Expand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWSExpand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWS
 
CakePHP and AJAX
CakePHP and AJAXCakePHP and AJAX
CakePHP and AJAX
 
What's new in xamarin.android, Jonathan Pryor
What's new in xamarin.android, Jonathan PryorWhat's new in xamarin.android, Jonathan Pryor
What's new in xamarin.android, Jonathan Pryor
 
Migration to ColdFusion 11 – making it seamless and easy anit
Migration to ColdFusion 11 – making it seamless and easy   anitMigration to ColdFusion 11 – making it seamless and easy   anit
Migration to ColdFusion 11 – making it seamless and easy anit
 
Performance Metrics in a Day with Selenium
Performance Metrics in a Day with SeleniumPerformance Metrics in a Day with Selenium
Performance Metrics in a Day with Selenium
 

En vedette

OpenDataGarage-Session4-GiorgioPrister-MajorCitiesofEuropeItaly
OpenDataGarage-Session4-GiorgioPrister-MajorCitiesofEuropeItalyOpenDataGarage-Session4-GiorgioPrister-MajorCitiesofEuropeItaly
OpenDataGarage-Session4-GiorgioPrister-MajorCitiesofEuropeItaly
Fing
 
Smart farm white paper chapter 4
Smart farm white paper chapter 4Smart farm white paper chapter 4
Smart farm white paper chapter 4
Pisuth paiboonrat
 
Book fing eng_light
Book fing eng_lightBook fing eng_light
Book fing eng_light
Fing
 
The Information Experience - RAND Presentation
The Information Experience - RAND PresentationThe Information Experience - RAND Presentation
The Information Experience - RAND Presentation
Sophia Guevara
 
Private company up & comers march 2012 - soho loft
Private company up & comers   march 2012 - soho loftPrivate company up & comers   march 2012 - soho loft
Private company up & comers march 2012 - soho loft
Jason Jones
 
Practice Prob Solv Acum Exam
Practice Prob Solv Acum ExamPractice Prob Solv Acum Exam
Practice Prob Solv Acum Exam
rhernandez1971
 
Prophet Chart
Prophet ChartProphet Chart
Prophet Chart
BertBrim
 
OpenDataWeek Marseille 2013 : Luca Gerretta -- Harmonising open data policies...
OpenDataWeek Marseille 2013 : Luca Gerretta -- Harmonising open data policies...OpenDataWeek Marseille 2013 : Luca Gerretta -- Harmonising open data policies...
OpenDataWeek Marseille 2013 : Luca Gerretta -- Harmonising open data policies...
Fing
 
китай пътека от стъкло
китай пътека от стъклокитай пътека от стъкло
китай пътека от стъкло
Canko Balkanski
 

En vedette (20)

Mal D Africa
Mal D AfricaMal D Africa
Mal D Africa
 
OpenDataGarage-Session4-GiorgioPrister-MajorCitiesofEuropeItaly
OpenDataGarage-Session4-GiorgioPrister-MajorCitiesofEuropeItalyOpenDataGarage-Session4-GiorgioPrister-MajorCitiesofEuropeItaly
OpenDataGarage-Session4-GiorgioPrister-MajorCitiesofEuropeItaly
 
Smart farm white paper chapter 4
Smart farm white paper chapter 4Smart farm white paper chapter 4
Smart farm white paper chapter 4
 
Pre-Leasing for June 2009
Pre-Leasing for June 2009Pre-Leasing for June 2009
Pre-Leasing for June 2009
 
Presentacion E Fusion
Presentacion E FusionPresentacion E Fusion
Presentacion E Fusion
 
Proyecto ROTOPLAS en SyBase
Proyecto ROTOPLAS en SyBaseProyecto ROTOPLAS en SyBase
Proyecto ROTOPLAS en SyBase
 
Book fing eng_light
Book fing eng_lightBook fing eng_light
Book fing eng_light
 
Resgate de um carro em Portugal
Resgate de um carro em PortugalResgate de um carro em Portugal
Resgate de um carro em Portugal
 
The Information Experience - RAND Presentation
The Information Experience - RAND PresentationThe Information Experience - RAND Presentation
The Information Experience - RAND Presentation
 
Private company up & comers march 2012 - soho loft
Private company up & comers   march 2012 - soho loftPrivate company up & comers   march 2012 - soho loft
Private company up & comers march 2012 - soho loft
 
Business value 2012
Business value 2012Business value 2012
Business value 2012
 
Social Marketing at Scale
Social Marketing at ScaleSocial Marketing at Scale
Social Marketing at Scale
 
Practice Prob Solv Acum Exam
Practice Prob Solv Acum ExamPractice Prob Solv Acum Exam
Practice Prob Solv Acum Exam
 
リーダブルコードワークショップ(パイオニア向け)のまとめ
リーダブルコードワークショップ(パイオニア向け)のまとめリーダブルコードワークショップ(パイオニア向け)のまとめ
リーダブルコードワークショップ(パイオニア向け)のまとめ
 
実践リーダブルコードのまとめ
実践リーダブルコードのまとめ実践リーダブルコードのまとめ
実践リーダブルコードのまとめ
 
buen regalo
buen regalobuen regalo
buen regalo
 
Prophet Chart
Prophet ChartProphet Chart
Prophet Chart
 
Embracing Events
Embracing EventsEmbracing Events
Embracing Events
 
OpenDataWeek Marseille 2013 : Luca Gerretta -- Harmonising open data policies...
OpenDataWeek Marseille 2013 : Luca Gerretta -- Harmonising open data policies...OpenDataWeek Marseille 2013 : Luca Gerretta -- Harmonising open data policies...
OpenDataWeek Marseille 2013 : Luca Gerretta -- Harmonising open data policies...
 
китай пътека от стъкло
китай пътека от стъклокитай пътека от стъкло
китай пътека от стъкло
 

Similaire à PHP on Windows 2008

Php Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc JaoPhp Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc Jao
jedt
 
ASP.NET 4.0
ASP.NET 4.0ASP.NET 4.0
ASP.NET 4.0
XeDotNet
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should Know
Spiffy
 
Programming Server side with Sevlet
 Programming Server side with Sevlet  Programming Server side with Sevlet
Programming Server side with Sevlet
backdoor
 
Harish Understanding Aspnet
Harish Understanding AspnetHarish Understanding Aspnet
Harish Understanding Aspnet
rsnarayanan
 

Similaire à PHP on Windows 2008 (20)

Microsoft, PHP and IIS7
Microsoft, PHP and IIS7Microsoft, PHP and IIS7
Microsoft, PHP and IIS7
 
PHP and FastCGI Performance Optimizations
PHP and FastCGI Performance OptimizationsPHP and FastCGI Performance Optimizations
PHP and FastCGI Performance Optimizations
 
IIS 6.0 and asp.net
IIS 6.0 and asp.netIIS 6.0 and asp.net
IIS 6.0 and asp.net
 
Php Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc JaoPhp Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc Jao
 
ASP.NET 4.0
ASP.NET 4.0ASP.NET 4.0
ASP.NET 4.0
 
SharePoint 2010 Boost your farm performance!
SharePoint 2010 Boost your farm performance!SharePoint 2010 Boost your farm performance!
SharePoint 2010 Boost your farm performance!
 
Philly Tech Fest Iis
Philly Tech Fest IisPhilly Tech Fest Iis
Philly Tech Fest Iis
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should Know
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End Performance
 
10 tips to make your ASP.NET Apps Faster
10 tips to make your ASP.NET Apps Faster10 tips to make your ASP.NET Apps Faster
10 tips to make your ASP.NET Apps Faster
 
Php iis microsoft
Php iis microsoftPhp iis microsoft
Php iis microsoft
 
Programming Server side with Sevlet
 Programming Server side with Sevlet  Programming Server side with Sevlet
Programming Server side with Sevlet
 
Harish Understanding Aspnet
Harish Understanding AspnetHarish Understanding Aspnet
Harish Understanding Aspnet
 
IIS 7: The Administrator’s Guide
IIS 7: The Administrator’s GuideIIS 7: The Administrator’s Guide
IIS 7: The Administrator’s Guide
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET Features
 
PHP conference Berlin 2015: running PHP on Nginx
PHP conference Berlin 2015: running PHP on NginxPHP conference Berlin 2015: running PHP on Nginx
PHP conference Berlin 2015: running PHP on Nginx
 
Node.js to the rescue
Node.js to the rescueNode.js to the rescue
Node.js to the rescue
 
Asp dot net long
Asp dot net longAsp dot net long
Asp dot net long
 
Joomla! Performance on Steroids
Joomla! Performance on SteroidsJoomla! Performance on Steroids
Joomla! Performance on Steroids
 
Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM i
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

PHP on Windows 2008

  • 1.  
  • 2. Jorke Odolphi Microsoft Australia web platform architect evangelist [email_address] @jorke
  • 4. So Bacon has feathers now? Contributing to Open Source Open Specification Promise Apache Software Foundation
  • 5. 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. Authorization ResolveCache UpdateCache … … … Monolithic implementation Install all or nothing … Extend server functionality only through ISAPI … Send Response Log Compress NTLM Basic Determine Handler CGI Static File ISAPI Authentication Anon SendResponse Authentication ExecuteHandler ASP.NET PHP
  • 6. IIS 6.0 ASP.NET Processing Runtime limitations Only sees ASP.NET requests Feature duplication … … … … aspnet_isapi.dll Send Response Log Compress NTLM Basic Determine Handler CGI Static File ISAPI Authentication Anon Authentication Forms Windows Map Handler ASPX Trace …
  • 7.
  • 8.
  • 9.
  • 10. New Configuration NET global settings .NET Framework Global web.config machine.config IIS 7 applicationHost.config Site Root web.config <system.web> .NET settings .. <system.webServer> IIS 7 Delegated settings ASP.NET global settings Global settings and location tags
  • 12. Per-site PHP configuration Configuring FastCGI process pool < fastCgi > < application fullPath =&quot;C:HPhp-cgi.exe&quot; arguments =&quot;-d my.website=website1&quot;> < environmentVariables > < environmentVariable name =&quot;PHPRC&quot; value =&quot;C:ebSitesebsite1&quot; /> </ environmentVariables > </ application > </ fastCgi > Combination of fullPath and arguments uniquely identify FastCGI process pool definition PHPRC environment variable contains path to the php.ini file
  • 13. Per-site PHP configuration Configuring Handler Mapping < system.webServer > < handlers accessPolicy =&quot;Read, Script&quot;> < add name =&quot;PHP via FastCGI&quot; path =&quot;*.php&quot; verb =&quot;*&quot; modules =&quot;FastCgiModule&quot; scriptProcessor =&quot;C:HPhp-cgi.exe|-d my.website=website2&quot; resourceType =&quot;Unspecified&quot; requireAccess =&quot;Script&quot; /> </ handlers > </ system.webServer > Reference FastCGI process pool by concatenating [fullPath]|[arguments]
  • 14. PHP Setup Feature Delegation Remote Administration Web Server Core Integration
  • 15. Thread safe Non Thread Safe
  • 16.
  • 17. FastCGI Handler Architecture IIS Worker Process Request queue FastCGI process pool for PHP5 php-cgi.exe FastCGI process pool for PHP4 php.exe FastCGI protocol over named pipes or TCP
  • 18.
  • 19.
  • 20.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 28. SID Injection AppPool: newPool username: newPoolUser password: <password> LogonUser AccessCheck AccessCheck Service Host (SVCHost.EXE) Windows Process Activation Service (WAS) World Wide Web Service (W3SVC) applicationhost.config Token Token NewPoolWwwrootdefault.htm ACL OK OtherpoolWwwrootdefault.htm ACL Denied