ホームページ >バックエンド開発 >PHPチュートリアル >PHP は、fastCGI モードの iis で実行されます。ファイル システムのアクセス許可の問題とその解決策、_PHP チュートリアル。
今日は IIS で php のデモを実行します。Web サイトの構成は次のとおりです。
アプリケーション プールは統合モード.net Framework 2.0 (php は fastCGI モードで実行されるため、2.0 か 4.0 は関係ありません)、アプリケーション プール ID は組み込み IIS NETWORKSERVICE として構成され、認証方法使用されるのは匿名認証です。
ローカルWebサイトを開いてphpページにアクセスしますが、500エラーが発生します。
これは権限の問題です。最も簡単な解決策は、C:UsersAdministratorPhpstormProjectsphpDemo の権限をEveryone に設定し、フル コントロールを許可することです。
phpページに再度アクセスして成功しました:
上記の方法は非常に簡単ですが、あまりにも安全ではありません。通常、これを実行するためにローカルのデモをセットアップするのは問題ありませんが、実際にオンラインになると、遅かれ早かれ問題が発生します。
そこで、リセットし、ディレクトリ内の読み取り専用権限をNETWRORKSERVICEアカウントに与えて、再試行しました
しかし、問題はまだ解決されていません
アクセスすると401エラーが発生します。エラー メッセージには、ログインしているユーザーが匿名であるという表示が含まれています。Web サイトで認証を確認します (次に、[匿名認証] -> [編集] をクリックします)。ログイン方法が匿名の場合、デフォルトでログインすることがわかります。 Web サイトで使用されるユーザーは IUSR (これは、私たちが目にする匿名ログイン ユーザーです)
その場合の解決策は次のとおりです:
1. NETWORKSERVICE の以前の設定と同様に、IUSR を C:UsersAdministratorPhpstormProjectsphpDemo の読み取り権限に設定します。
2. または、アプリケーション プール ID の使用を選択します。
テスト後、方法 1 と 2 は両方とも成功しました。
注: NETWORKSERVICE は、IIS7 の iis_iusers ユーザー グループに属します。NETWORKSERVICE の以前の設定を iis_iusers の設定に変更することもできます。これによっても問題は解決されますが、権限はさらに緩和されます。
http://www.bkjia.com/PHPjc/997642.html