PHP が fastCGI モードで実行される場合のファイル システムのアクセス許可の問題と解決策
IIS7.0 で FastCGI モードで PHP 動作環境を構成し、PHP プログラムが正常に実行できることをテストした後、PHP プログラムを展開し、元のプログラムをインポートします。データと構成情報。すぐに問題が発生しますので、以下に詳しく記録します。
今日は IIS で php デモを実行します。IIS での 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/998352.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/998352.html技術記事 PHP が fastCGI モードで実行される場合のファイル システムのアクセス許可の問題と解決策。IIS7.0 で FastCGI モードで PHP 実行環境を構成し、PHP プログラムが正常に実行できることをテストした後、PHP プログラムをデプロイします。