PHPでファイルのパーミッションを設定する方法
かなり組んだシステムを新しいサーバーに乗り換えたのですが、
PHPで組んだ画面にアクセスすると、
failed to open stream: Permission denied in ....
Warning: include(): Failed opening ....
というエラーが出ていました。
あるファイルを読み込もうとしているのですが、
そのファイルのパーミッションが「600」で作成されていたことが原因でした。
バッチ処理で自動生成しているファイルなのですが、
新サーバーに移行したことで「600」のパーミッションで作成されるようになってしまったようです。
ここは、chmod()を使って、ファイル作成時にパーミッションを「644」に設定するように改修することで対応しました。
chmod("ファイルパス", パーミッション)
というような使い方になります。
今回であれば、以下のように修正しました。
・
・
file_put_contents("/home/log/sample.csv", $put);
chmod("/home/log/sample.csv", 0644);
これで、
再度バッチ処理を走らせてファイルが「644」のパーミッションで作成されていればOKです。
あとは、画面上から確認して問題なくファイルを読み込めていることを確認して、
修正完了です。
この記事へのコメントはありません。