2011-09-17 21 views
1

私はここで、Windows 2008、IIS 7とFastCGIを使用するPHPを構成するためにUsing FastCGI to Host PHP Applications on IIS 7の指示に従っており、問題が発生しています。 PHPのバージョンは5.3.8です。 IIS上でハンドラマッピングをセットアップし、テストページを作成しましたが、ページには500エラー以外の何も返されません。私はPHPのページのルールを失敗した要求トレースをオンにしました、と私はエラーを閲覧する際、PHP IIS 7とFastCGIが動作しない

php -version. 

言った:私は、私が入力したときに、私は応答を取得し、コマンドラインから、PHPが動作することを保証しましたログインすると、私はのようなものを参照してください。失敗した要求のログの上から

<EventData> 
    <Data Name="ContextId">{00000000-0000-0000-0200-0080010000F6}</Data> 
    <Data Name="ModuleName">FastCgiModule</Data> 
    <Data Name="Data1">FASTCGI_RESPONSE_ERROR</Data> 
    <Data Name="Data2">PHP Warning: phpinfo() [&lt;a href=&apos;function.phpinfo&apos;&gt;function.phpinfo&lt;/a&gt;]: It is not safe to rely on the system&apos;s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected &apos;America/New_York&apos; for &apos;-4.0/DST&apos; instead in C:\inetpub\wwwroot\phpinfo.php on line 1 
</Data> 
<Data Name="ErrorCode">5</Data> 
</EventData> 
<RenderingInfo Culture="en-US"> 
    <Opcode>MODULE_WARNING</Opcode> 
    <Keywords> 
    <Keyword>Module</Keyword> 
    </Keywords> 
    <freb:Description Data="ErrorCode">Access is denied. 
(0x5)</freb:Description> 

を、私はそれがIUSRアカウントで実行している見ることができます:

tokenUserName="NT AUTHORITY\IUSR" 

ここでのFastCGIの設定です:

<fastCgi> 
    <application fullPath="C:\PHP\php-cgi.exe" instanceMaxRequests="10000"> 
     <environmentVariables> 
      <environmentVariable name="PHP_FCGI_MAX_REQUESTS" value="10000" /> 
      <environmentVariable name="PHPRC" value="C:\php\php.ini" /> 
     </environmentVariables> 
    </application> 
</fastCgi> 

<handlers accessPolicy="Read, Script"> 
    <add name="PHP via FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\PHP\php-cgi.exe" resourceType="Unspecified" requireAccess="Script" /> 

私は、このユーザー名がC:\ PHPディレクトリを完全に制御できることを確認しました。私のphp.iniファイルはC:\ PHPディレクトリ内で設定されています。

はその記事の指示に従うことに加えて、私はまた、PHPのスクリプトマップを作成しようとしました、と私は私ももう一度差誤差ではなく、500

HTTP Error 403.1 - Forbidden 
You have attempted to run a CGI, ISAPI, or other executable program from a directory that does not allow executables to run. 

を得たことを作成したとき、IUSRはそのディレクトリを完全に制御できるので、なぜそのエラーメッセージが理解できないのでしょうか。

更新 この問題はログに記録されていました。私はdate.timezoneに関してPHP警告を無視していました。それは単なる警告だと思っていました。私はそれを次のように設定しました:

date.timezone = America/New_York 

これで動作します。

答えて

5

http://php.iis.net/を使用すると、簡単にIISセットアップにphpをインストールできます。これにはマネージャーが付属しています。このマネージャーは、開発モードに入り、PHPエラーを表示するのではなく、PHPエラーを表示します。

+0

うわー、それははるかに簡単だったでしょう。私はこのリンクを将来の参照のために保存します。 – mservidio

関連する問題