ファイルの作成に使用file_put_contents
しています。私のphpプロセスは、ディレクトリへの書き込み権限を持つグループで実行されています。ただし、 が呼び出されると、結果のファイルにfile_put_contents
はグループの書き込み権限がありません (最初は問題なく作成されます)。これは、ファイルを上書きしようとすると、権限がないために失敗することを意味します。
グループ書き込み権限でファイルを作成する方法はありますか?
例 1 (所有者とグループのファイル許可を読み取り/書き込みに設定し、その他のファイル許可を読み取りに設定します):
file_put_contents($filename, $data);
chmod($filename, 0664);
例 2 (他のパーミッションを変更せずにファイルをグループで書き込み可能にする):
file_put_contents($filename, $data);
chmod($filename, fileperms($filename) | 16);
例 3 (他のパーミッションを変更せずに、誰でもファイルを書き込み可能にする):
file_put_contents($filename, $data);
chmod($filename, fileperms($filename) | 128 + 16 + 2);
128、16、2 は、それぞれ所有者、グループ、その他の書き込み可能です。
ファイルを開いて内容を上書きするには、ファイルへの書き込み権限が必要です。違いを理解することが重要です。ファイル全体を上書きするには、実際にはディレクトリへの書き込み権限が必要です。
chmod()
明確にしたい場合は、ファイルやディレクトリに適切なものを設定するために使用します。