How to Run PHP on IIS7.5 Express?

Saurabh picture Saurabh · Aug 16, 2011 · Viewed 21.8k times · Source

I have Win XP SP3 and have installed IIS7.5 Express and want to run PHP on it.

I am able to run simple HTML code on the server, I am able to start and stop the server by running iisservices.exe, but I am not able to run php scripts on it.

If I have the following PHP file:

<? php 
echo "hello world";
?>
<html>HI</html>

The output is HI but the PHP script doesn't run.

I have followed the steps described in this article to install PHP:

http://learn.iis.net/page.aspx/724/install-and-configure-php/

But can't proceed from step 10 onwards because IIS Express doesn't have an IIS Management Console MMC snap-in.

How do I configure IIS Express to run PHP?

Answer

Kev picture Kev · Aug 17, 2011

Assuming you've carried out steps 1 - 9 in the article you linked to and have your PHP files extracted to c:\php then complete the following steps using a cmd.exe command prompt:

Firstly we need to configure IIS Express and setup a handler for PHP

cd "\Program Files\IIS Express"

appcmd set config -section:system.webServer/fastCgi /+"[fullPath='C:\PHP\php-cgi.exe',arguments='',maxInstances='4',idleTimeout='300',activityTimeout='30',requestTimeout='90',queueLength='1000',instanceMaxRequests='200',protocol='NamedPipe',flushNamedPipe='False',rapidFailsPerMinute='10']" /commit:apphost

appcmd set config -section:system.webServer/handlers /+"[name='PHP-FastCGI',path='*.php',modules='FastCgiModule',verb='*', scriptProcessor='c:\php\php-cgi.exe']" /commit:apphost

Assuming your PHP website resides in c:\MyPHPWeb we create a site in IIS Express that listens on http://localhost:32701:

appcmd add site /name:"MyPHPApp" /bindings:http/*:32701: /physicalPath:"c:\MyPHPWeb"

Next start the site:

iisexpress.exe /site:MyPHPApp

And finally browse to your PHP page:

http://localhost:32701/test.php