- ベストアンサー
phpファイルをcronで動かす方法
- phpファイルをcronで動かす方法について調べています。サーバーはcentos5でroot権限を持っています。
- 質問者は、/var/www/html/test.phpファイルを毎日午前6時に実行したいと考えています。
- /etc/以下にはcronに関連するフォルダやファイルが存在しますが、具体的な設定方法が分からないようです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
まず、test.phpを実行するユーザー(rootで実行ならroot)になり、crontab -e とコマンドを打ちます。 そうするとエディターが起動してcronの設定ファイルが編集できるようになります。 毎日6時に実行するのであれば 0 6 * * * /usr/local/bin/php /var/www/html/test.php と設定を書き込むと毎日6時に実行されます。 PHPへのパスはお使いの環境に合わせて修正してください。
その他の回答 (2)
- t_ohta
- ベストアンサー率38% (5238/13705)
/usr/bin/php /var/www/html/test.php が正しく動作するよう test.php を修正するのが先決だと思います。 ブラウザからアクセスした場合の動作と、コマンドラインから実行した場合では環境変数などの違いがあるので動作が異なる場合があります。 バックアップファイルを作成するプログラムだと言うことなので、実行時のカレントパスが違うなどの可能性もあるのではないでしょうか。 cronのログの方は、内容からして予定通り実行されているのでcronの問題ではなく test.php の動作の問題だと思います。
お礼
アドバイスどうもありがとうございます。 test.phpをもう一度見直してみます。 長いことお付き合い頂きましてありがとうございました。
- t_ohta
- ベストアンサー率38% (5238/13705)
まず、コマンドラインで /usr/bin/php /var/www/html/test.php が正しく動作するか確認してみてください。 cron のログは、一般的には /var/log/ の中に cron とか cron.log の様な形で残っています。
補足
度々ありがとうございます。 コマンドラインでやっても正しく動作しませんでした。 具体的にはバックアップファイルを作成してくれませんでした。 # /usr/bin/php /var/www/html/test.php と入力しても下記の入力待ち?状態に戻るだけでした。 # cronのログを見てみましたが、該当時間の行には localhost crontab: (root) CMD (/usr/bin/php /var/www/html/test.php) とあるだけでした。 また、先程ブラウザから直接test.phpにアクセスするとバックアップファイルが作成できたのですが、なぜか今はできなくなってしまいました。 今から外出しなければいけないのですが、何か基本的なところを間違っているような気がします・・・ 何かお気付きの点などありましたらまた教えて頂けると幸いです。 よろしくお願い致します。
補足
どうもありがとうございます。 さっそく設定してみました。 設定後、crontab : installing new crontab と表示されたので 試しに15時15分に設定してやってみたところうまく動作してくれませんでした。 rootでcrontab -eを入力して下記を書き込み保存しました。 15 15 * * * /usr/bin/php /var/www/html/test.php ブラウザから直接test.phpにアクセスするとちゃんと動作しているのですがどこがおかしいのでしょうか? また、cronに関するエラーはどこに保存されるのでしょうか?