タイトルそのまま。戒めとして。
fopen()
の引数にはファイルのフルパスを入力しないと正常にファイルが生成されない場合がある。
PHP fopen can not read file if called with cronjob [duplicate]
また今回はzipファイルを生成するためにZipArchive
オブジェクトを使用していたが、zipにファイル追加する関数であるaddFile()
も同様。
これはコマンドやブラウザでプログラムを実行した場合と、crontabで実行した場合にカレントディレクトリが異なることがある。そのため意図したフォルダ階層にファイルを生成できない場合があるので、crontabでの指定方法と共に注意する必要がある。
下記記事のようにcd
コマンドでカレントディレクトリを変更するのもアリだと思うが、今回はプログラム内に絶対パス指定する記述の方がわかりやすいと思ったのでそうした。
*/5 * * * * cd /home/hogehoge/works/ && /usr/bin/php /home/hogehoge/works/hogehoge.php