質問: fopenを利用してlogファルを作ろうと思っているのですが、モードがaの場合 ファイルがないとファイルを生成してくれますがそのままだとパーミッションが 600になってしまうのでchmodで変更して755にしようと思っています。 この時ローテとの処理で何度もchmodを呼ぶのがくどいと思うのですが、初期作成時の1回目だけパーミッションを変更する方法はありますでしょうか? ``` fopen($log_path, 'a'); chmod($log_path, 0777); ```
回答: ログファイルがあったとしても、それがアクセス権を変更されていないとは限らない、ので、常にアクセス権を変更してよいのか、という疑問が付きます。 そう考えると「ファイルがなければ作り、アクセス権を設定する。ファイルがあるなら開いてそのまま」ですかねえ...... ``` $fp = null; if (file_exists($filename) === FALSE) { $fp = fopen($filename, "wb"); chmod($filename, 0755); } else { $fp = fopen($filename, "ab"); } ... ```