PHP Setup on IIS 7 [Answered]RSS

5 replies

Last post Jul 21, 2010 03:51 PM by don.raman

  • PHP Setup on IIS 7

    Jul 20, 2010 03:48 PM|sconos|LINK

     Hi, I've setup PHP on IIS 6.0 a number of times before and never had problems like I am having with PHP via FastCGI on win 2008 and IIS 7.0

     

    OK - Server is an R2 SP2 server running 32 bit,  Install IIS 7, and added ISAPI Filters and Extensions as well as CGI, downloaded the Web Platform Installer (2.0) and had it install Framework 4, PHP and a few other items.  My perl CGI runs fine on the web Server, But I can not get php to server, just get a blank page when I hit a simple phpinfo test page.  I can see the "PHP_via_FastCGI" handler Mapping at the root of IIS.

     

    Read up on  http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-7/ -

     

    Downloaded the php non-thread safe zip from the php site, exploded into c:\php - followed the config instructions and get a good output when I do "c:\php\php -info"

    Went back and modified the Handler Mapping to point at c:\php\php-cgi.exe  - restarted everything - and I still can not get a simple phpinfo site to come up - just a blank page.

     

    I'm still digging, but I'm stumped at the moment ... any help would be appriciated.

     

    Thanks - Mike

  • Re: PHP Setup on IIS 7

    Jul 20, 2010 03:58 PM|don.raman|LINK

    Hi Mike,

    You installed PHP from WPI as well as NTS zip folder and to add to it ISAPI. There might be too much of configuration which you have done to configure PHP. First of all undo all that you have done. Unistall PHP from Add/Remove Program, delete C:\PHP folder and delete all the handler mappings to *.php. If you have set any registry key to load the correct INI file, remove that too. Once you have undone all these items follow these blogs:

    Thanks,

    Don.

  • Re: PHP Setup on IIS 7

    Jul 21, 2010 02:49 PM|sconos|LINK

     Don,

    I've followed you advise and so far no change ....

    1. Uninstalled manual php install

    2. Used Programs and Features to uninstall WPI php install

    3. Deleted all instances of *.php in the IIS Handler Mapping section, then rebooted the box for good measure

    4. Installed PHP again from WPI

    5. ran php-cgi.exe -v - got a dialog box pop up - msvcr71.dll missing, commented out php-mssql.dll in php.ini extensions, got a Clean run of php-cgi.exe -v

    Ran:

    C:\Program Files\PHP>%WINDIR%\system32\inetsrv\appcmd.exe list config /section:f
    astcgi /text:*

    got:

    CONFIG
      CONFIG.SECTION:"system.webServer/fastCgi"
      path:"MACHINE/WEBROOT/APPHOST"
      overrideMode:"Inherit"
      locked:"false"
      [system.webServer/fastCgi]
        [application]
          fullPath:"C:\Program Files\PHP\php-cgi.exe"
          arguments:""
          monitorChangesTo:""
          stderrMode:"ReturnStdErrIn500"
          maxInstances:"4"
          idleTimeout:"300"
          activityTimeout:"300"
          requestTimeout:"600"
          instanceMaxRequests:"10000"
          signalBeforeTerminateSeconds:"0"
          protocol:"NamedPipe"
          queueLength:"1000"
          flushNamedPipe:"false"
          rapidFailsPerMinute:"10"
          [environmentVariables]
            [environmentVariable]
              name:"PHP_FCGI_MAX_REQUESTS"
              value:"10000"
            [environmentVariable]
              name:"PHPRC"
              value:"C:\Program Files\PHP\"

     Then ..

    C:\Program Files\PHP>%WINDIR%\system32\inetsrv\appcmd.exe list config /section:h
    andlers /text:* | findstr /i PHP
          name:"PHP_via_FastCGI"
          path:"*.php"
          scriptProcessor:"C:\Program Files\PHP\php-cgi.exe"

    Put a "test.php" file in root and it returns fine "My first php program" in browser

    Put a "testphp.php" file right next to the test.php file with nothing but <? phpinfo(); ?> in it - blank page, logs say

    2010-07-21 15:59:12 10.112.6.41 GET /test.php - 80 10.x.x.x Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+en-US;+rv:1.9.2.6)+Gecko/20100625+Firefox/3.6.6 200 0 0 1029
    2010-07-21 16:00:01 10.112.6.41 GET /testphp.php - 80 10.x.x.x Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+en-US;+rv:1.9.2.6)+Gecko/20100625+Firefox/3.6.6 200 0 0 187

     But the testphp.php comes up blank, I have what was a running application I get a 500 on ...

    2010-07-21 16:57:24 10.112.6.41 GET /search/admin/indexer.php - 80 10.113.1.5 Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+en-US;+rv:1.9.2.6)+Gecko/20100625+Firefox/3.6.6 500 0 0 1201

    I've repeated this process twice so far - as far as removing and reinstalling .. no luck and no progress.  Getting php running should not be this hard ...

    Any direction would be appreciated.

     

    Mike

     

  • Re: PHP Setup on IIS 7

    Jul 21, 2010 03:23 PM|don.raman|LINK

    I think you have done everything right.

    sconos

    ran php-cgi.exe -v - got a dialog box pop up - msvcr71.dll missing

    Please open your php.ini file and comment the line extension=php_mssql.dll. Simply put ';' at the beginning of the line. This is the old and deprecated SQL driver to connect to MS SQL Server. Probably you will never need it. Other workaround is to install Microsoft VC7 runtime. This will help you geting rid of the error.

    sconos

    Put a "testphp.php" file right next to the test.php file with nothing but <? phpinfo(); ?> in it - blank page

    See by default short_open_tags is set to Off in php.ini. This is the reason why PHP is not able to recognize testphp.php as a PHP file. Please change the content to

    <?php

    phpinfo();

    ?>

    This should fix everything and you should be able to display the phpinfo page. Details at http://blogs.iis.net/donraman/archive/2009/11/01/running-php-displays-the-code-itself.aspx.

    Thanks,

    Don.

  • Re: PHP Setup on IIS 7

    Jul 21, 2010 03:41 PM|sconos|LINK

     Don,

     Thanks, quick reply ..

    I had already commented out the extension line in php.ini and short tags was set to off - forgot that would affect the php declare in code.

    Changed phpinfo for proper declare and got a phpinfo page now.

     The rest of my app still gets a blank page and a 500 in the logs .. I'm running this same application code on a Win2K3 \ IIS 6 box with no problems, I can see php running now through the phpinfo display, I'm just not sure whats different between the servers in how they are interpreting the PHP code, shouldn't really be a difference once an info page comes up PHP should just run ...

    I'm going to turn on some debugging in php.ini ... if you have any suggestions let me know.  thanks for your help.

    BTW - The application is a Sourceforge search engine called TSEP ...

     

    Mike

     

     

  • Re: PHP Setup on IIS 7

    Jul 21, 2010 03:51 PM|don.raman|LINK

    Hi,

    sconos

     The rest of my app still gets a blank page and a 500 in the logs ..

    Now this entirely depends on how you deployed your existing application on 2k3 on the new machine. Remember a simple copy may not work. However your PHP is configured properly. What I would suggest is that in the DOCUMENT ROOT of the site concerned put a simple phpinfo file and try accessing it from the browser. if it display properly this means that PHP is configured properly even at that site level.

    sconos

    I'm going to turn on some debugging in php.ini

    I would say start looking at PHP error log file which will be present at C:\WINDOWS\Temp\php-errors.log and see if PHP is writing anything there. Also look at Windows Event Viewer and see if there is any crash with respect to process php-cgi.exe.

    If you are familiar with the application do a simple 'error_log' debugging. Put dummy error_log statement and see where it is failing.

    Thanks,

    Don.