スターサーバーでの
Cron設定手順まとめ
Cronは、指定した日時にPHPなどのプログラムファイルを自動で実行できる機能です。
プログラムによってはページの予約更新のような使い方もできるため、覚えておくとベンリな機能です。
ただ、はじめてCronを使うときは、設定の仕方がちょっと難しく感じる方も多いのではないでしょうか。
かくいう私も、マニュアルを参考に試してはエラーを連発して、サポートに問い合わせてやっと使い方が分かったCron初心者です。
ここでは、私が実際に使っているスターサーバーでのCronの設定方法をまとめてみました。
Cron設定手順1
Cron設定画面を開こう!
まずは、スターサーバーでCron設定画面を開きます。
スターサーバーにログインして、「ホームページ」項目にある「Cron設定」というメニューをクリックします。
「CRON一覧」画面になるので、まずは通知メールアドレスに、スターサーバーに登録したメールアドレスなどを登録しておきましょう。
Cronでエラーになったときに、通知メールを受け取ることができます。
続いて「CRON追加」タブをクリックして、「CRON」情報を入力していきます。
©netowl,Inc.
「コマンド」以外はなんとなく分かるかも知れませんが、一応確認していきましょう。
「分」はCronを実行する分を入力します。
「時」はCronを実行する時間を入力します。
「日」はCronを実行する日にちを入力します。
「月」はCronを実行する月を入力します。
「曜日」はCronを実行する曜日を入力します。全ての曜日を意味する「*」を入力しておくとベンリです。
「コマンド」は実行したいコマンドを指定します。
「コメント」は任意ですが、Cronの実行内容をカンタンにメモしておくと、複数のCronを設定した時に分かりやすくなります。
さて、記入例を見てみましょう!
たとえば、2023年11月22日のお昼の12時00分に実行したい場合は、以下のように入力します。
「分」0
「時」12
「日」22
「月」11
「曜日」*
このへんは マニュアルページに詳しく書かれているので、ぜひ参照してみてくださいね。
ここからは、Cronの肝である「コマンド」について見ていきたいと思います。
Cron設定手順2
コマンド欄の書き方は?
マニュアルによると、コマンド欄に入力するコマンドは、
「/home/【サーバーID】/【ドメイン名】/public_html/...」
といった、実行したいプログラムファイルを
フルパス(絶対パス)
で指定するように書かれていて、入力例もそのままフルパスになっています。
の、ですが!
実際は実行したいファイルのフルパスだけ入力しても、エラーになって動きません。
私もマニュアルを見てフルパスを入力してみたものの、「許可がありません」といったエラーメールが届くばかりで、全く実行できませんでした。
正しくは、
「【コマンドパス】/home/【サーバーID】/【ドメイン名】/public_html/...」
と、「/home/」の前に「コマンドパス」を書く必要があります。
コマンドパスは、使うPHPのバージョンなどによって違います。
スターサーバーの「サーバー情報」メニューをクリックして、「コマンドパス」タブをクリックすると、使えるPHPなどのバージョンごとのコマンドパスを確認できます。
サーバー仕様ページの「プログラムのコマンドパス」項目でも確認できますね。
たとえばPHP8で動かす場合は、「/usr/bin/php8.0」といった「コマンドパス」を入力します。
今回、私が実行したCronのコマンドだと、こんな感じです。
「/usr/bin/php8.0 /home/【サーバーID】/【ドメイン名】/php/cron.php」
コマンドに入力する際は、「コマンドパス」のあとには半角スペースが必要なので、気をつけましょう!
私は半角スペースを入力しなかったところ「ディレクトリではありません」とエラーメールが送られてきました。
ちなみに「サーバーID」は、スターサーバーにログインするとページの上部に表示されていたり、スターサーバーの「アカウント情報」メニューをクリックすると確認できます。
今回のCronでは、プログラムファイルはドメイン直下の「php」内に置いていますが、「public_html」内に置く場合は、「php」の部分を「public_html」に変更しましょう。
「/usr/bin/php8.0 /home/【サーバーID】/【ドメイン名】/public_html/cron.php」
セキュリティの観点から、PHPなどのプログラムファイルは「public_html」より上の階層に設置するのが一般的です。
ただ、スターサーバーのデフォルトのFTPアカウントでは、「public_html」より上の階層にアクセスできないので、新たに「FTPアカウント」を作る必要があります。
その場合は、「FTPアカウント設定」メニューをクリックして、「FTPアカウント追加」タブをクリック。
「ホームパス」欄に「/home/【サーバーID】/」の以下を空欄にして、「アカウントID」と「パスワード」を登録して作成すればOKです。
Cron設定方法
余談
お疲れ様でした!
ここまで、スターサーバーでCronを使う設定方法を見てきました。
スターサーバーでCronを登録する際は、コマンド欄には「コマンドパス」+半角スペース+「ファイルのフルパス」を入力すればOK!
また、通知メールを受け取れるように、メールアドレスを登録しておくのもオススメです。
スターサーバーでは、Cronが正常に実行できた場合は通知メールは来ないので、通知メールが届いた時点でなんらかのエラーがあったと分かります。
エラーメッセージはシンプルですが、どんなエラーなのかを分類するヒントになることもありますよ。
Cronは自動でプログラムを実行できるベンリな機能ですが、最初は思ったように動かず戸惑うかも知れません。
本番で使う前に、しっかり挙動をチェックして活用しましょう!