サーバで周期的にスクリプトを起動
と言えば、簡単な方法としてサーバのCron機能を使えば実現できます。
Cronとは
読み方は、「クロン」「クーロン」「クローン」「シーロン」と様々です。
UNIX、Linuxの常駐プログラムの一種で、指定した時刻に指定したコマンド、スクリプトを実行してくれるスケジュールプログラムです。
このCron機能は、レンタルサーバによりユーザーに解放していたり、制限があったりします。
今回は、Cron時間の設定の自由度が利き、サーバパネルから簡単に設定できるXSERVERを例に実現方法を説明していきます。
XSERVERのCronの設定
まず、実行する時刻、実行するphpプログラムを決めて置きます。
実行する時刻:毎時5分(0:05,1:05,2:05・・・)
実行するドメイン名:exsample.com
実行するファイル名:interval.php
Cronコマンドの作成
コマンドは、以下の形式になります。
コマンドパス[半角スペース]/home/サーバーID/独自ドメイン名/public_html/実行ファイル名
ここでドメイン名はexsample.com、実行するファイル名:interval.phpなので
コマンドパス[半角スペース]/home/サーバーID/exsample.com/public_html/interval.php
です。
コマンドパスの調べ方
コマンドパスは、動作しているPHPのバージョンで異なります。
PHPのバージョンを調べる
Xserver サーバーパネルのトップページの左下の「設定対象ドメイン?」を対象のドメインに設定する
サーバーパネルの「PHP Ver.切替」をクリックします。
PHPバージョン切り替えのページが開きます。
PHPバージョン切り替えページの現在のバージョン欄から、PHPのバージョンが分かります。
PHPのバージョンからコマンドパスを調べる
サーバーパネルの「サーバー情報」をクリックし、サーバー情報ページの「コマンドパス一覧」タブをクリックします。
該当するPHPバージョン(CLI)のパスがコマンドパスです。(PHPのバージョンの端数は切り捨てで調べます)
最近の新サーバではCLIではないこともあるので(CLI)表示はされてない場合もあります。
サーバーIDを調べる
サーバーパネルのトップページ左上にあります。
ここで整理して
コマンドパス:usr/bin/php7.0
サーバーID:abcdefg
先程のコマンドパス[半角スペース]/home/サーバーID/exsample.com/public_html/interval.php
にあてはめると
usr/bin/php7.0 /home/abcdefg/exsample.com/public_html/interval.php
これがCronのコマンドになります。
コマンドパスの区切りに半角スペースを忘れないように注意してください。
Cronの設定
サーバーパネルの「Corn設定」をクリックします。
開いたCron設定ページの「CORNの追加」タブをクリックします。
1時間ごとなので、1の分の設定だけ適当に 0~59の数字 例では毎時5分なので 5
残りの2~5は、*(半角アスタリスク)を入力
6は、先ほど調べたコマンドを入力
7は、1時間毎起動とかの後でわかりやすい注釈を入力
そして「CRONの追加」ボタンをクリックします。
確認画面が表示されるので、問題なければ「CRONの追加」ボタンをクリックして完了