人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

cronからphpを起動させると、 file_put_contents が動作しません。
webブラウザからURLを叩いて起動させると file_put_contents が動作します。

★こんな動作です
file_put_contents("test.txt","ok");

★cronから起動できているか?の懸念
同じスクリプト内で↓この個所がちゃんと動いています。
mail('mymail@example.com', '動いた', 'okok');
メールが届いているので起動していないわけではありません。
ちなみにユーザはrootで動かしてます。

原因が想像できる方は是非教えてください。

●質問者: にらたま
●カテゴリ:インターネット ウェブ制作
✍キーワード:example.com PHP root test txt
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tdoi
●100ポイント

Webサーバ経由でPHPが起動された場合と、cronで起動された場合では、カレントディレクトリが異なります。

そのため、質問文中にあるように、

file_put_contents("test.txt","ok");

と、test.txtと相対パスで記述してあれば、対象となるファイルがことなります。

Webサーバ経由であれば、このスクリプトと同階層のtest.txtとなり、cronにより起動された場合は(確か)起動ユーザのホームになるはずです。

/var/www/html/test.phpというスクリプトに記述していたとすると、

Webサーバ経由では、/var/www/html/test.txtというファイルにokと出力されますが、

cron経由では、/root/test.txtというファイルにokと出力されるかと思います。

まずは、これを確認してみてください。

こうでない場合は、なんらかのエラーになっていると思われますので、ログなどを確認してみてください。


何かの参考になれば。

◎質問者からの返答

file_put_contents("/var/www/html/test.txt","ok");

これで出来ました!

いやーそういうことだったんですね。。

大変ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ