レンタルサーバーのConoHa WINGでは、ジョブスケジューラー(cron)機能があります。日時を指定してプログラムを定期自動実行できる機能です。
プログラムの定期自動実行でやりたいことがあったので、サポートページのご利用ガイドを見てみるも、詳細について記述がなかったので備忘録です。
ファイルを保存するphp
ファイルを保存するphpを用意してftpでアップロードしておきます。
ブラウザでアクセスすると、同ディレクトリにdata_text.txtが作成されます。
file_put_contents(__DIR__."/data_text.txt" , "データテキスト");
注意するのは、ファイルパスです。ジョブスケジューラーでプログラムを実行すると、cronのある場所を基本に実行するので、ファイル保存するパスを絶対パスで記述します。
ここでは__DIR__を使用しています。
ブラウザでsave_text.phpにアクセスすると、同ディレクトリにdata_text.txtが保存されます。
ジョブスケジューラーで設定
日時指定・定期実行するためにジョブスケジューラーの設定をします。
管理画面>サーバー管理>ジョブスケジューラーを選択して、+ジョブスケジューラーを追加します。
定期実行の日時設定
処理日時のcronタブを選択すると、入力欄が出てきます。
入力例がサポートサイトにありません。
例えば、以下の入力だと、
毎時間、5分の時(10:05、11:05、12:05…)に定期実行されます。
毎分5分ごとに定期実行するためには、*/5を入力します。
他に
複数指定「5,15」=>5分と15分
範囲指定「20-40」=>20分から40分
の指定があります。
コマンドの設定(パス記述例)
コマンド欄はphpのパス プログラムファイルのパスを入力します。以下は例です。
/opt/alt/php80/usr/bin/php /home/{conohaのユーザーID}/public_html/{サイトディレクトリ}/{不ファイルまでのパス}/save_text.php
phpのパスは、こちらに各プログラムのパスがありました。
phpバージョン8の記述はありませんが、「/opt/alt/php80/usr/bin/php」でOKです。
FTPで確認
定期実行されているか、FTPで確認します。
conohaレンタルサーバー良いですね。
コメント
ConoHaさんのマニュアル ( https://support.conoha.jp/w/jobscheduler/ ) にはコマンド入力方法の記載がなく困っていました。まさかphpのパスも必要だったとは…
おかげさまで助かりました。どうもありがとうございます。
コメントありがとうございます。
記事がお役に立って良かったです。