エックスサーバーでのCRON設定
エックスサーバーで、CRM分析プラグインの集計用CRONを設定する手順です。
サーバーパネルから2本のスケジュールを登録します。
前提条件
- エックスサーバーのサーバーパネルにログインできること
- EC-CUBEとCRM分析プラグインがインストール済みであること
- EC-CUBEの設置ディレクトリ(パス)が分かること(例:
/home/サーバーID/ドメイン名/public_html/ec-cube) - CRONで使うPHPのバージョンが決まっていること(サーバーパネルの「PHP Ver.切替」で設定しているWebのPHPと、同じバージョンを推奨します)
推奨スケジュール
CRM分析プラグインでは、レンタルサーバーでも安定して運用できる5分おきを推奨しています。
| 用途 | 推奨 | コマンド |
|---|---|---|
| 集計ワーカー | 5分おき | eccube:crm-analytics42:worker |
| 日次登録 | 毎日 3:00 | eccube:crm-analytics42:enqueue-daily |
管理画面から集計を開始するとキューに登録され、次回のワーカー実行で処理が始まります。5分おきなら、開始までの待ちは最大で約5分です。
設定手順
- サーバーパネルにログインする
- 「サーバー」>「Cron設定」を開く
- 「Cron設定を追加」をクリックする
- 後述の「時刻」と「コマンド」を入力する
- 「追加する」をクリックする
- 日次登録用も同様にもう1件追加する

PHPのコマンドパスを確認する
エックスサーバーのCRONでは、PHPのコマンドパスをコマンドの中に書きます。
- コマンドパスは
/opt/php-バージョン/bin/phpの形式です(例: PHP 8.3 の場合は/opt/php-8.3/bin/php) - 使えるバージョンは、CRM分析プラグインが対応する 7.4 / 8.0 / 8.1 / 8.2 / 8.3 です
- Webで使うPHP(サーバーパネルの「PHP Ver.切替」)と、CRONで使うPHPは別々に決まります。CRONでは、コマンドパスの数字でバージョンを指定します
- コマンドパスのバージョンは、EC-CUBEが対応するバージョンに合わせてください(動作環境・対応バージョン を参照)
- サーバーパネルの「サーバー情報」→「コマンドパス一覧」にも、PHPのコマンドパスが載っています
入力内容
エックスサーバーのサーバーパネルでは、時刻(分・時間・日・月・曜日)とコマンドを分けて入力します。ダッシュボードの初期セットアップに表示される1行(先頭に */5 * * * * などが付いた行)をそのまま貼り付けず、次のように分けてください。コマンドの末尾には > /dev/null 2>&1 を付け足します(理由は後述の「実行結果のメールについて」)。コマンドの表示方法は、初期セットアップ を参照してください。
1. 集計ワーカー(5分おき)
コマンド(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 | * | * | * | * |

2. 日次登録(毎日 3:00)
コマンド(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
時刻:
| 分 | 時間 | 日 | 月 | 曜日 |
|---|---|---|---|---|
0 | 3 | * | * | * |

パスの置き換え
/home/サーバーID/ドメイン名/public_html/ec-cubeは、実際のEC-CUBE設置ディレクトリに置き換えてください- ダッシュボードの初期セットアップに表示されるパスを使うと確実です
/opt/php-8.3/bin/phpは、使うPHPバージョンのコマンドパスに置き換えてください
実行結果のメールについて
コマンドの末尾の > /dev/null 2>&1 は、実行結果を捨てる指定です。5分おきに動くため、付けないと実行のたびに結果が通知されます。
- 「Cron結果の通知アドレス」を設定している場合は、実行のたびに通知メールが届きます
- 通知アドレスを設定していない場合は、ホームディレクトリ直下の「Maildir」フォルダに結果が保存され続けます
設定後の確認
- ダッシュボードの初期セットアップで、ワーカー側に「動作を確認しました」と出るか見る(登録から最大5分ほどかかります)
- 初期セットアップの「上記2つの登録が完了したらチェックしてください。」にチェックを入れる
- 管理画面から短い期間で集計を開始し、「定期実行の開始待ち」から実行中へ進むことを確認する
うまくいかないとき
- コマンドの設置パスやPHPのコマンドパスが違うと、コマンドが動きません。SSHが使える場合は、時刻と
> /dev/null 2>&1を除いた部分を、そのまま手動実行して確認できます - PHPのバージョンがEC-CUBEの対応範囲(7.4〜8.3)外だと、分かりにくいエラーになることがあります。コマンドパスのバージョンを確認してください
- ダッシュボードに「CRON(定期実行)が動いていない可能性があります」と表示された場合や、解決しない場合は、初期セットアップ の「うまく動かないときは」を参照してください
- 原因を調べるときは、コマンド末尾の
> /dev/null 2>&1をいったん外し、「Cron結果の通知アドレス」にメールアドレスを設定して、実行結果を確認してください。確認が終わったら、元に戻してください --no-debugが付いていないと、長時間集計でメモリ不足になることがあります- 詳細は 集計されない も参照してください