webブラウザからURLを叩いて起動させると file_put_contents が動作します。
★こんな動作です
file_put_contents("test.txt","ok");
★cronから起動できているか?の懸念
同じスクリプト内で↓この個所がちゃんと動いています。
mail('mymail@example.com', '動いた', 'okok');
メールが届いているので起動していないわけではありません。
ちなみにユーザはrootで動かしてます。
原因が想像できる方は是非教えてください。
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");
これで出来ました!
いやーそういうことだったんですね。。
大変ありがとうございます。