※ ChatGPTを利用し、要約された質問です(原文:echoを使用すると、エラー)
echoを使用した場合のIISでのエラーと解決方法
このQ&Aのポイント
echoを使用すると、IISで内部エラーが発生する問題が発生しています。
エラーの原因として、(1)IISがweb.configファイルにアクセスできない、(2)IISが構成を処理できない、(3)認証されたユーザーにアクセス許可がない、(4)マネージハンドラにマップされているが.NET拡張機能がインストールされていないという可能性があります。
これらの問題を解決するためには、適切なアクセス許可の設定や構成の変更、必要な拡張機能のインストールなどが必要となります。
下記URIで記載された手順でphp5.3.6.0をインストールして、ハンドラマッピングの作成まで行い、
http://www.php.net/manual/ja/install.windows.iis7.php
下記プログラムを実行することはできました。
<html>
<head>
<title>
日本語版
</title>
</head>
<body>
<?php
if (strstr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'ja')) {
?>
日本語対応しています。
<?php
} else {
?>
This site is available in Japanese only.
<?php
}
?>
</body>
</html>
しかしながら、下記のように、echoを使用すると、IIS で要求は受信されましたが、要求の処理中に内部エラーが発生しました。
<html>
<head>
<title>
日本語版
</title>
</head>
<body>
<?php
if (strstr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'ja')) {
echo "日本語対応しています。\r\n"
} else {
echo "This site is available in Japanese only.\r\n"
}
?>
</body>
</html>
エラーの原因として、以下の可能性があるようです。
(1)IIS が Web サイトまたはアプリケーションの web.config ファイルにアクセスできません。NTFS アクセス許可が正しく設定されていない場合に、この現象が発生します。→phpファイルの上層であるinetpubフォルダをフルコントロールにしてみましたが、駄目でした。
(2)IIS が Web サイトまたはアプリケーションの構成を処理できません。 →SJISユーザ用にphp.iniを設定してみましたが、駄目でした。
(3)その認証されたユーザーには、この DLL を使用するアクセス許可がありません。→PHPフォルダ内のdllファイルであると仮定して、PHPフォルダをフルコントロールにしてみましたが、駄目でした。
(4)要求はマネージ ハンドラにマップされていますが、.NET 拡張機能がインストールされていません。→インストールしてみましたが、駄目でした。
お礼
早速のご回答どうもありがとうございました。 Eclipseをインストールして自分でも発見できたのですが、遅かったです。