| Install and Run PHP on IIS7 |
|
|
| Written by Leon Ruumpol source: blogs.msdn.com/david.wang, Thursday, 22 June 2006 | ||||||
|
A couple of months ago, David wrote a quick and dirty entry on how to install PHP on IIS7. The main purpose of that entry was to explain the details of what was going on as well as cookie-cutter instructions of one way to successfully install PHP on IIS7. Well, the responses that Daved have received from that blog entry made me realize that I need to provide something a little more shrink-wapped which does a few more things other than just run the bare minimum... because I was seeing way too many broken custom modifications coming from not knowing PHP or IIS7. Just copy/paste the following into a .bat file, right-click run it as elevated Administrator, and follow the prompted instructions. You should have PHP extracted into a directory of your choice before-hand (I favor and default to %SYSTEMDRIVE%\Inetpub\PHP for many aforementioned reasons; in my examples, I chose "C:\Program Files\P H P" to show it working with long pathnames). The batch script:
Of course, David only giving instructions for how to get PHP configured to IIS7. Questions about all other PHP-related features (like extensions) and how to get them working belongs to a PHP support forum. Sample Execution:
David.Wang's Sample PHP/IIS7 Configurator Version: June 2006 ------------------------------ Summary ------------------------------ PHP Binaries Dir : C:\Inetpub\PHP PHP Binary Type : ISAPI PHP Binary Name : php5isapi.dll --------------------------------------------------------------------- Validating inputs... ERROR: PHP Binary "C:\Inetpub\PHP\php5isapi.dll" does not exist! Please first completely extract PHP to "C:\Inetpub\PHP" Remember to tweak PHP.INI for security and functionality per php.net Finished input validation. Press 1 to EDIT choices, or ENTER to start IIS modifications:1 Press ENTER to accept [C:\Inetpub\PHP], or provide new value (folder path) PHP Binaries Dir:<font color="#ff0000">C:\Program Files\P H P</font> Press ENTER to accept [ISAPI], or provide new value (CGI or ISAPI) PHP Binary Type: Press ENTER to accept [php5isapi.dll], or provide new value (filename) PHP Binary Name: David.Wang's Sample PHP/IIS7 Configurator Version: June 2006 ------------------------------ Summary ------------------------------ PHP Binaries Dir : C:\Program Files\P H P PHP Binary Type : ISAPI PHP Binary Name : php5isapi.dll --------------------------------------------------------------------- Validating inputs... Remember to tweak PHP.INI for security and functionality per php.net Finished input validation. Press 1 to EDIT choices, or ENTER to start IIS modifications: Starting IIS7 Configuration... Copying "C:\Program Files\P H P\PHP.INI-Recommended" to PHP.INI... Setting PHP Handler... CONFIG object "system.webServer/handlers" changed Adding and Enabling PHP in ISAPI/CGI Restriction List... CONFIG object "system.webServer/security/isapiCgiRestriction" changed Finished IIS7 Configuration. Test installation using PHP file content of: <?php phpinfo();?>
David.Wang's Sample PHP/IIS7 Configurator Version: June 2006 ------------------------------ Summary ------------------------------ PHP Binaries Dir : C:\Inetpub\PHP PHP Binary Type : ISAPI PHP Binary Name : php5isapi.dll --------------------------------------------------------------------- Validating inputs... ERROR: PHP Binary "C:\Inetpub\PHP\php5isapi.dll" does not exist! Please first completely extract PHP to "C:\Inetpub\PHP" Remember to tweak PHP.INI for security and functionality per php.net Finished input validation. Press 1 to EDIT choices, or ENTER to start IIS modifications:1 Press ENTER to accept [C:\Inetpub\PHP], or provide new value (folder path) PHP Binaries Dir:<font color="#ff0000">C:\Program Files\P H P</font> Press ENTER to accept [ISAPI], or provide new value (CGI or ISAPI) PHP Binary Type:<font color="#ff0000">cgi</font> Press ENTER to accept [php5isapi.dll], or provide new value (filename) PHP Binary Name:<font color="#ff0000">php-cgi.exe</font> David.Wang's Sample PHP/IIS7 Configurator Version: June 2006 ------------------------------ Summary ------------------------------ PHP Binaries Dir : C:\Program Files\P H P PHP Binary Type : cgi PHP Binary Name : php-cgi.exe --------------------------------------------------------------------- Validating inputs... ERROR: PHP CGI requires modifying cgi.force_redirect to 0 in C:\Program Files\P H P\PHP.INI Remember to tweak PHP.INI for security and functionality per php.net Finished input validation. Press 1 to EDIT choices, or ENTER to start IIS modifications: Starting IIS7 Configuration... Copying "C:\Program Files\P H P\PHP.INI-Recommended" to PHP.INI... Setting PHP Handler... CONFIG object "system.webServer/handlers" changed Adding and Enabling PHP in ISAPI/CGI Restriction List... CONFIG object "system.webServer/security/isapiCgiRestriction" changed Finished IIS7 Configuration. Test installation using PHP file content of: <?php phpinfo();?> Enjoy. //David @IF ?%_ECHO%?==?? ECHO OFF SETLOCAL SET DIR_PHP_FROM=%SYSTEMDRIVE%\Inetpub\PHP SET PHP_TYPE=ISAPI SET PHP_MODULE=IsapiModule SET PHP_BINARY=php5isapi.dll :Menu ECHO. ECHO David.Wang's Sample PHP/IIS7 Configurator ECHO Version: June 2006 ECHO. ECHO ------------------------------ Summary ------------------------------ ECHO PHP Binaries Dir : %DIR_PHP_FROM% ECHO PHP Binary Type : %PHP_TYPE% ECHO PHP Binary Name : %PHP_BINARY% ECHO --------------------------------------------------------------------- REM REM Do some basic validations REM ECHO. ECHO Validating inputs... IF /I ?%PHP_TYPE%? NEQ ?CGI? IF /I ?%PHP_TYPE%? NEQ ?ISAPI? ECHO.&ECHO ERROR: Binary Type MUST be either CGI or ISAPI FOR %%I IN ( %PHP_BINARY% ) DO ( IF /I ?%PHP_TYPE%? EQU ?CGI? IF /I ?%%~xI? NEQ ?.exe? ECHO.&ECHO WARNING: Binary Type %PHP_TYPE% requires a CGI EXE binary IF /I ?%PHP_TYPE%? EQU ?ISAPI? IF /I ?%%~xI? NEQ ?.dll? ECHO.&ECHO WARNING: Binary Type %PHP_TYPE% requires an ISAPI DLL binary ) IF NOT EXIST "%DIR_PHP_FROM%\%PHP_BINARY%" ( ECHO. ECHO ERROR: PHP Binary "%DIR_PHP_FROM%\%PHP_BINARY%" does not exist! ECHO Please first completely extract PHP to "%DIR_PHP_FROM%" ) IF /I ?%PHP_TYPE%? EQU ?CGI? SET PHP_MODULE=CgiModule IF /I ?%PHP_TYPE%? EQU ?CGI? ECHO.&ECHO ERROR: PHP CGI requires modifying cgi.force_redirect to 0 in %DIR_PHP_FROM%\PHP.INI IF /I ?%PHP_BINARY%? NEQ ?php5isapi.dll? IF /I ?%PHP_BINARY%? NEQ ?php-cgi.exe? ECHO.&ECHO WARNING: Unrecognized PHP binary %PHP_BINARY% ECHO. ECHO Remember to tweak PHP.INI for security and functionality per php.net ECHO Finished input validation. ECHO. SET GO= SET /P GO=Press 1 to EDIT choices, or ENTER to start IIS modifications: IF ?%GO%? EQU ?? GOTO :Start ECHO. ECHO Press ENTER to accept [%DIR_PHP_FROM%], or provide new value (folder path) SET /P DIR_PHP_FROM=PHP Binaries Dir: ECHO Press ENTER to accept [%PHP_TYPE%], or provide new value (CGI or ISAPI) SET /P PHP_TYPE=PHP Binary Type: ECHO Press ENTER to accept [%PHP_BINARY%], or provide new value (filename) SET /P PHP_BINARY=PHP Binary Name: GOTO :Menu :Start REM REM Start Configuration REM IF NOT EXIST "%DIR_PHP_FROM%\%PHP_BINARY%" ( ECHO. ECHO ERROR: PHP Binary "%DIR_PHP_FROM%\%PHP_BINARY%" does not exist! ECHO Please first completely extract PHP to "%DIR_PHP_FROM%" GOTO :EOF ) ECHO. ECHO Starting IIS7 Configuration... ECHO. ECHO Copying "%DIR_PHP_FROM%\PHP.INI-Recommended" to PHP.INI... COPY /Y "%DIR_PHP_FROM%\PHP.INI-Recommended" "%DIR_PHP_FROM%\PHP.INI" >NUL PUSHD %SYSTEMROOT%\System32\inetsrv ECHO Setting PHP Handler... APPCMD SET CONFIG -section:handlers "-+[name='PHP-%PHP_TYPE%',path='*.php',verb='GET,HEAD,POST',modules='%PHP_MODULE%',scriptProcessor='%DIR_PHP_FROM%\%PHP_BINARY%',resourceType='File']" ECHO Adding and Enabling PHP in ISAPI/CGI Restriction List... APPCMD SET CONFIG -section:isapiCgiRestriction "-+[path='%DIR_PHP_FROM%\%PHP_BINARY%',allowed='true',groupId='PHP',description='PHP']" POPD ECHO. ECHO Finished IIS7 Configuration. ECHO. ECHO Test installation using PHP file content of: ^<?php phpinfo();?^> ENDLOCAL
Powered by JoomlaCommentCopyright (C) 2006 Frantisek Hliva. All rights reserved.Homepage: http://cavo.co.nr/ |
||||||
| < Prev | Next > |
|---|

