
実稼働環境で稼働している Laravel 3.2 アプリを IIS 7.5 サーバーに移行するよう依頼されました。実稼働環境の php.ini を 5.4.37 で動作するように設定しましたが、500 エラーが発生し、実行するために必要なトラブルシューティングを行うことができません。
display_errors を display-startup_errors = on に設定し、MSIE でサーバー上のわかりやすい警告をオフにすると、最終的にいくつかのフィードバックが得られます。
file_put_contents(C:\inetpub\wwwroot\HMarketing\storage\logs/2015-03-03.log): failed to open stream: Permission denied
larvel のログ ファイルにログを書き込むことができません。Google で調べてみると、IIS は読み取り書き込み権限を付与する必要がある IIUSR ロールを使用していることがわかりました。
匿名ユーザーの認証を詳しく調べたところ、"IUSR" に設定されていることがわかりました。これは、MS ヘルプ ページで提案されている "IIUSR" とは異なるようです。ただし、このサーバーは他の本番アプリをアクティブに提供し、他の動作中のアプリの権限をチェックしています。それらには同じ "IUSR" が設定されていることがわかりました。おそらく、IIUSR に相当するものがあるのでしょうか?
私は必死に IIS を学んでいるので、Google によると行き詰まっています。Laravel でログを表示できない理由を解決するには、次の手順で何をすればよいでしょうか?
mcrypt is enabled
mb_string is enabled
答え1
これは正しい方法ではないかもしれませんが、Windows エクスプローラー内でストレージ フォルダーのプロパティ、セキュリティ タブを開き、「アクセス許可の継承」を無効にしました。次に、IUSR(サイト) ユーザーにフォルダーへの書き込み権限を追加しました。これが悪いことではないことを願いますが、少なくともこのエラーは回避できました。私よりも知識のある方が、このエラーを回避する最も安全な方法を教えてくれると嬉しいです。
答え2
.\IIS_IUSRS
私たちの場合、 の代わりに グループを使用したところ、問題は解消されましたIUSR
。不思議なことに、 はIUSR
以前は機能していました。