cron、PHP、パーミッションについて


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 です。

よろしくお願いします。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/10/29 01:01:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:studiocherry No.1

回答回数283ベストアンサー獲得回数100

ポイント200pt

/path/test.php のパーミッションは、どうでしょうか?

コマンドラインから 「/path/test.php」で、実行できますか?

コマンドラインから 「php /path/test.php」 だと実行できますか?

他2件のコメントを見る
id:anesawa

CGIで動かしてないので、shebangは関係ないかなと思います。
またsudo php /path/test.php を実行すると
エラーにならずhoge.txtが生成されます。

2015/10/29 00:28:22
id:anesawa

0  *  *  *  *  root /usr/local/bin/php /path/test.php
と書くことで解決しました。。
エラー内容がParmission deniedになるのが納得いきませんが、、
ありがとうございます。

2015/10/29 01:01:29
  • id:a-kuma3
    >エラー内容がParmission deniedになるのが納得いきませんが、、
    /path/test.php に実行権限が無い、という Permission Denied です。
    shebang は CGI のための仕組みではありません。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません