phpがfastCGIで動作する場合のファイルシステムの権限問題と解決方法


今日はphp demoをIISの下に置いて運営する予定です。サイトのIISの下の配置はこうです。
アプリケーションプールは集積モードの下で.net frame ebook 2.0(2.0または4.0は大丈夫です。phpはfastCGIの方式で走っていますので)、アプリケーションプールはIIS内蔵のNETWORKSERVICEとしてマークされています。使用する認証方式は匿名で認証されます。
地元のウェブサイトを開けて、phpページにアクセスして、500のエラーが発生しました。

はい、権限の問題です。一番簡単な解決方法はC:\Users\Administrator\PhoptomProject\phpDemoの権限をEveryoneに設定し、完全な制御を許可します。

phpページに再アクセスしました。成功しました。

上の方法は十分に簡単ですが、あまりにも安全ではないので、普段は現地でデモを作って大丈夫です。本当にオンラインする時は、遅かれ早かれ問題が発生します。
再設定し、このディレクトリの読み取り専用権限をNETWRORKSERVICEアカウントに付与してもう一度試してみます。

しかし、問題はまだ解決されていません。訪問中に、401のエラーが発生しました。

エラー情報には、ログインしたユーザが匿名であることを表示し、ウェブサイトの下の認証を確認する(匿名の認証をクリックしてください)というものが含まれています。元のウェブサイトがデフォルトである場合、ログイン方法が匿名の場合、使用するデフォルトのログインユーザはIUSRです。

解決方法は:
1.IUSRをC:\Users\Administrator\Phoptom Project\phpDemoの読み取り権限に設定し、これまでNETWORKSERVICEに関する設定と同様です。
2.またはアプリケーションプールの表示を選択すればいいです。
実験を経て、方法1と2は成功しました。

Note:NETWORKSERVICEはIIS 7にiis_に属しています。iusersユーザーグループは、NETWORKSERVICEの設定をiis_に変更することもできます。iusersの設定は、同様に問題を解決することができますが、権限がさらに緩和されただけです。
以上述べましたが、本文の内容は全部です。お好きになってください。