[PHP]ファイル生成プログラムをcrontabで実行する時には絶対パスを指定する

タイトルそのまま。戒めとして。

fopen()の引数にはファイルのフルパスを入力しないと正常にファイルが生成されない場合がある。

PHP fopen can not read file if called with cronjob [duplicate]

また今回はzipファイルを生成するためにZipArchiveオブジェクトを使用していたが、zipにファイル追加する関数であるaddFile()も同様。

phpでzipファイルを作成する

これはコマンドやブラウザでプログラムを実行した場合と、crontabで実行した場合にカレントディレクトリが異なることがある。そのため意図したフォルダ階層にファイルを生成できない場合があるので、crontabでの指定方法と共に注意する必要がある。
下記記事のようにcdコマンドでカレントディレクトリを変更するのもアリだと思うが、今回はプログラム内に絶対パス指定する記述の方がわかりやすいと思ったのでそうした。

cronの走らせかた

*/5 * * * * cd /home/hogehoge/works/ && /usr/bin/php /home/hogehoge/works/hogehoge.php

カテゴリーPHP

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

6 + three =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください