PHP スクリプトを実行するために FastCGI が使用されているかどうかを確実に知る方法 質問する

PHP スクリプトを実行するために FastCGI が使用されているかどうかを確実に知る方法 質問する

ホストされたサイトがあり、Joomla の設定に問題があります (IIS7 + win server 2008 で Joomla + php + mySQL を実行)。ローカル マシンで同様の設定を実行しています (IIS7 + vista x64 で Joomla + php + mySQL)。そのため、少なくとも、さまざまなチュートリアルに示されている設定方法に関する指示に従うことができました。

ホストされたサイトでのこの症状は、Joomla で SEO 設定をオンにできないことです (最初の設定である「検索エンジンフレンドリー URL」もオンにできません)。404 (ファイルが見つかりません) が表示されるか、URL が正しく書き換えられたように見えますが、表示されるのは常にホームページのコンテンツです。自宅のマシンでも同様の問題がありましたが、PHP をホストするために FastCGI を使用していなかったことが原因であることが判明したため、ホストされたサイトでその問題を調査することにしました。

とにかく、ホストされたサイト上の Joomla をホストしているディレクトリの web.config ファイルに次の行があることに気付きました。

<add name="Plesk_Handler_3522909676" path="*.php" verb="*" modules="IsapiModule" scriptProcessor="c:\program files (x86)\parallels\plesk\additional\pleskphp5\php5isapi.dll" resourceType="Either" />

過去の経験から、fastCGI で実行されていない場合、php にいくつかの問題があることはわかっています。ルート フォルダーの web.config では、代わりに次の行が使用されていることに気付きました。

<add name="Plesk_Handler_0286090609" path="*.php" verb="*" modules="CgiModule" scriptProcessor="c:\program files (x86)\parallels\plesk\additional\pleskphp5\php-cgi.exe" resourceType="Either" /> 

それをjoomlaディレクトリのweb.configにコピーしたところ、動作が変わりました...でもまだ動作しません。phpInfo()を実行するjoomlaディレクトリの.phpファイルをロードすると、Server APIの下にCGI/FastCGIと表示されます。肯定的な確認FastCGI が使用されているのですか? Web 構成のハンドラーが modules="FastCgiModule" ではなく modules="CgiModule" を指しているのはなぜですか (存在するかどうかさえわかりませんが、CgiModule の言及が疑わしいと思います)。

これはホストされたサイトなので、私の知る限りでは ApplicationHost.config ファイルにアクセスできません...

ベストアンサー1

簡単なテストを次に示します。

  1. phpinfo.phpファイルを作成し、

 <?php phpinfo(); ?> 

内部;

  1. リクエストhttp://yoursite.com/phpinfo.php/foobar?foo=bar

  2. phpinfoの出力を確認し、_SERVER["REQUEST_URI"]を探します。

この変数がない場合は、CGI が使用されます。変数が存在し、正しく /phpinfo.php/foobar?foo=bar に設定されている場合、ISAPI または FastCGI が使用されます。出力の上部付近の Server API を確認します。ISAPI (ISAPI が使用されていることを意味します) または CGI/FastCGI (CGI は既に除外されているため、FastCGI が使用されていることを意味します) のいずれかに設定されている必要があります。

おすすめ記事