エックスサーバーでのCRON設定

エックスサーバーで、CRM分析プラグインの集計用CRONを設定する手順です。

サーバーパネルから2本のスケジュールを登録します。

前提条件

  • エックスサーバーのサーバーパネルにログインできること
  • EC-CUBEとCRM分析プラグインがインストール済みであること
  • CRONで使うPHPのバージョンが決まっていること(サーバーパネルの「PHP Ver.切替」で設定しているWebのPHPと、同じバージョンを推奨します)

推奨スケジュール

CRM分析プラグインでは、レンタルサーバーでも安定して運用できる5分おきを推奨しています。

用途推奨コマンド
集計ワーカー5分おきeccube:crm-analytics42:worker
日次登録毎日 3:00eccube:crm-analytics42:enqueue-daily

管理画面から集計を開始するとキューに登録され、次回のワーカー実行で処理が始まります。5分おきなら、開始までの待ちは最大で約5分です。

設定手順

  1. サーバーパネルの「サーバー」>「Cron設定」を開く
  2. 集計ワーカー用(5分おき)のCronを追加する
  3. 日次登録用(毎日 3:00)のCronを追加する

手順1: 「Cron設定」を開く

サーバーパネルにログインし、「サーバー」>「Cron設定」を開きます。

手順2: 集計ワーカー用のCronを追加する

「Cron設定を追加」をクリックし、「時刻」と「コマンド」を入力して、「追加する」をクリックします。

エックスサーバーのサーバーパネルでは、時刻(分・時間・日・月・曜日)とコマンドを分けて入力します。ダッシュボードの初期セットアップに表示される1行は、先頭の時刻指定(*/5 * * * * など)を除いた部分を貼り付けます。コマンドの表示方法は、初期セットアップ を参照してください。コマンドの末尾には > /dev/null 2>&1 を付け足します(理由は後述の「実行結果のメールについて」)。

コマンドの /opt/php-8.3/bin/php は、ダッシュボードで選んだ、CRONで使うPHPのバージョンのコマンドパスです(/opt/php-バージョン/bin/php の形式。選べるのは 7.4 / 8.0 / 8.1 / 8.2 / 8.3)。Webで使うPHP(「PHP Ver.切替」)と、CRONで使うPHPは別々に決まるため、CRONでは、コマンドパスの数字でバージョンを指定します。

コマンド(1行):

cd /home/サーバーID/ドメイン名/public_html/ec-cube && /opt/php-8.3/bin/php bin/console --no-debug eccube:crm-analytics42:worker > /dev/null 2>&1

時刻:

分時間日月曜日
*/5****

手順3: 日次登録用のCronを追加する

手順2と同様に、もう1件追加します。

コマンド(1行):

cd /home/サーバーID/ドメイン名/public_html/ec-cube && /opt/php-8.3/bin/php bin/console --no-debug eccube:crm-analytics42:enqueue-daily > /dev/null 2>&1

時刻:

分時間日月曜日
03***

実行結果のメールについて

コマンドの末尾の > /dev/null 2>&1 は、実行結果を捨てる指定です。5分おきに動くため、付けないと実行のたびに結果が通知されます。

  • 「Cron結果の通知アドレス」を設定している場合は、実行のたびに通知メールが届きます
  • 通知アドレスを設定していない場合は、ホームディレクトリ直下の「Maildir」フォルダに結果が保存され続けます

設定後の確認

  1. ダッシュボードの初期セットアップで、ワーカー側に「動作を確認しました」と出るか見る(登録から最大5分ほどかかります)
  2. 初期セットアップの「上記2つの登録が完了したらチェックしてください。」にチェックを入れる
  3. 初期セットアップのステップ2「初回集計を開始しましょう」で「集計を開始」をクリックし、「定期実行の開始待ち」から実行中へ進むことを確認する(集計の期間は自動で選ばれます。集計するデータがない場合は、ステップ2は表示されず、セットアップが完了します)

うまくいかないとき

  • PHPのバージョンがEC-CUBEの対応範囲(7.4〜8.3)外だと、分かりにくいエラーになることがあります。コマンドパスのバージョンを確認してください
  • ダッシュボードに「CRON(定期実行)が動いていない可能性があります」と表示された場合や、解決しない場合は、初期セットアップ の「うまく動かないときは」を参照してください
  • 原因を調べるときは、コマンド末尾の > /dev/null 2>&1 をいったん外し、「Cron結果の通知アドレス」にメールアドレスを設定して、実行結果を確認してください。確認が終わったら、元に戻してください
  • 詳細は 集計されない も参照してください

関連ページ

CRM分析プラグイン

EC-CUBEの会員・受注データを分析し、リピート率や休眠顧客の把握、AIによる改善提案まで行えるプラグインです。