cronでPHPプログラムを実行しファイルの書き込みをしたところ
Permission Denied のエラーになりました
cronには
0 * * * * root /path/test.php
と記述し、rootユーザーで実行するようになっています。
test.phpの中ではfile_put_contentsで/path/hoge.txtというファイルを書き込みますが
/path/hoge.txtのパーミッションは
-rw-r--r-- 1 root wheel
となっています。
rootが所有者となっていますので、
問題なく書き込める気がするのですが、
何がおかしいのでしょうか。
ちなみにhoge.txtが存在する/pathディレクトリのパーミッションは
drwxr-xr-x 2 root wheel です。
よろしくお願いします。
/path/test.php のパーミッションは、どうでしょうか?
コマンドラインから 「/path/test.php」で、実行できますか?
コマンドラインから 「php /path/test.php」 だと実行できますか?
CGIで動かしてないので、shebangは関係ないかなと思います。
2015/10/29 00:28:22またsudo php /path/test.php を実行すると
エラーにならずhoge.txtが生成されます。
0 * * * * root /usr/local/bin/php /path/test.php
2015/10/29 01:01:29と書くことで解決しました。。
エラー内容がParmission deniedになるのが納得いきませんが、、
ありがとうございます。