chmod()
PHPにて、とあるファイルのパーミッションを変更しようと以下の様に記述を行いました。
$file_pathにあるファイルのパーミッションを変更しようとしています。
その後も更新の発生するファイルだったためです。
しかし、処理を実行してみると以下のようなエラーが出力されてしまいました。
Operation not permitted
調べてみると当然のことだったのですが、chmod()を実行する際は実行ユーザと対象ファイルの所有者ユーザが一緒でなければなりません。
以下はrootユーザで作成したファイルに対してapacheユーザでchmodコマンドを実行しようとテストした際の様子です。
PHPのWarningと同様のOperation not permittedと表示されているのが分かりますね。
解決
実際にPHPから操作しようとしたファイルを確認してみると、
PHPの実行ユーザのapacheとは異なる所有者設定になっていました。
rootユーザで対象ファイルの所有者をapacheに変更し解決しました。