cron から PHP を実行するときのパス指定方法
cron で PHP ファイルを実行するとき、 PHP で file_put_contents
を使ってファイルの書き込み処理を行ったが file_put_contents
に指定するファイルパスを相対パスで書いたら意図しない場所にファイルが作られてしまった。
定期実行するファイルは /etc/cron.d/auto に置いてあって、 php /var/www/html/cron/hoge.php
という処理が書いてある。
hoge.php には、 file_put_contents("./../result.txt", $str);
と書いてある。
結果、ルートパス /
に result.txt が作成された。
本当は、 /var/www/html にある result.txt に書き込ませたかった。
cron から実行させる場合は、絶対パスで書く。
file_put_contents("/var/www/html/result.txt", $str);