LoginSignup
3
2

More than 5 years have passed since last update.

Mautic の cron 設定サンプル

Last updated at Posted at 2017-02-10

Mautic は、キャンペーンやメールの送信などで Cron を多用します。
crontab や /etc/crontab で設定するのが一番。

対応バージョン Mautic 2.7.1

確認作業

PHP の場所を確認

which php
> php

PHP の場所が違う場合は下記のサンプルコードの「PATH」を書き換えてください。

Web サーバーとして実行しているユーザー

apache なのか nginx なのか、SSH と同じユーザーで実行しているのか確認します。
このサンプルでは「apache」ユーザーで、crontab のユーザーには、 パスワードなし で「sudo」権限を割り当てられているとします。

下記のサンプルでは、「apache」ユーザーと仮定しています。ユーザーが違う場合は書き換えてください。

Mautic が格納されているパスを確認

Mautic が格納されているパスを確認します

cd [Mautic の格納場所]
pwd
> /var/www/vhost/mautic/

このサンプルでは「/var/www/vhost/mautic/」に Mautic ファイルが存在しているとします。違う場合はサンプルコードを書き換えてください。

実行するコマンドを決定

下記サンプルコードのコメントを読んで、どのコマンドを実行するか決定し、必要がないコマンドはコメントアウトするか削除してください。

実行間隔を決定

サンプルでは、サーバーに負荷を与えないために、10分毎に実行する設定になっています。

メンテナンス系は月に1回としています。

メール送信の了が多くなるとサーバーを増強するか、外部メール送信サービスを使うか、間隔を狭めるなどの対応が必要になります。

HOME & PATH ディレクトリの確認

HOME ディレクトリを、Mautic の格納場所にするか、それとも自分のユーザーの場所にするか決めると、php のコマンドを省略できます。

メール通知

Cron が正常に動いているか、しばらく通知メールを送ってもらってチェックするのも良いでしょう。

MAILTO の値をちょっとだけ自分のメールアドレスに変えてみても良いかもです。

/etc/crontab の場合

Web サーバーのユーザーとして実行する必要があるし、etckeeper などの、設定ファイルレポジトリを使っている場合、/etc/crontab で Cron の設定をした方が良いので sudo 権限や root である場合は、こちらでの設定をおすすめします。

sudo vi /etc/crontab
I
SHELL=/bin/bash
HOME=【サイトのルートディレクトリでも良いかも】
PATH=/sbin:/bin:/usr/sbin:/usr/bin:$HOME/.local/bin:$HOME/bin
MAILTO=""

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
#  *  *  *  *  * user-name command to be executed

# キャンペーンのビルド
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:campaigns:rebuild
# キャンペーンのトリガー
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:campaigns:trigger
# キャンペーンメッセージ
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:campaigns:messages

# セグメントのアップデート
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:segments:update

# メールの送信
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:emails:send
# メールの受信(バウンスメールチェック機能など)
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:email:fetch

# ソーシャルモニタリング
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:social:monitoring

# IPアドレス情報のダウンロード (毎月1日午前0時)
0 0 1 * * apache php /var/www/vhost/mautic/app/console mautic:iplookup:download
# 365日より古いユーザーデータを削除
0 0 1 * * apache php /var/www/vhost/mautic/app/console mautic:maintenance:cleanup --days-old=365
[esc]
ZZ

crontab -e の場合

ユーザーアカウントとして実行する Crontab の場合、ユーザーは sudo 権限があり、apache や nginx などとして実行できるか、apache や nginx ユーザーとして実行する必要があります。

crontab -e
I
SHELL=/bin/bash
HOME=【サイトのルートディレクトリでも良いかも】
PATH=/sbin:/bin:/usr/sbin:/usr/bin:$HOME/.local/bin:$HOME/bin
MAILTO=""

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
#  *  *  *  *  * command to be executed

# キャンペーンのビルド
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:campaigns:rebuild
# キャンペーンのトリガー
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:campaigns:trigger
# キャンペーンメッセージ
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:campaigns:messages

# セグメントのアップデート
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:segments:update

# メールの送信
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:emails:send
# メールの受信(バウンスメールチェック機能など)
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:email:fetch

# ソーシャルモニタリング
*/10 * * * * apache php /var/www/vhost/mautic/app/console mautic:social:monitoring

# IPアドレス情報のダウンロード (毎月1日午前0時)
0 0 1 * * apache php /var/www/vhost/mautic/app/console mautic:iplookup:download
# 365日より古いユーザーデータを削除
0 0 1 * * apache php /var/www/vhost/mautic/app/console mautic:maintenance:cleanup --days-old=365
[esc]
ZZ

ウチのサーバーの例

  • 10分おきに実行
  • メールのキューは使っていない
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=katz@concrete5.co.jp
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
#  *  *  *  *  * user-name command to be executed

*/10 * * * * apache php /var/www/vhosts/mautic/app/console mautic:campaigns:rebuild
*/10 * * * * apache php /var/www/vhosts/mautic/app/console mautic:campaigns:trigger
*/10 * * * * apache php /var/www/vhosts/mautic/app/console mautic:campaigns:messages

*/10 * * * * apache php /var/www/vhosts/mautic/app/console mautic:segments:update

*/10 * * * * apache php /var/www/vhosts/mautic/app/console mautic:emails:send
*/10 * * * * apache php /var/www/vhosts/mautic/app/console mautic:email:fetch

*/10 * * * * apache php /var/www/vhosts/mautic/app/console mautic:social:monitoring

0    0 1 * * apache php /var/www/vhosts/mautic/app/console mautic:iplookup:download
# 0  0 1 * * apache php /var/www/vhosts/mautic/app/console mautic:maintenance:cleanup --days-old=365 --dry-run

備忘録:アップデートしたら Cron が動作しているか確認を!

忘れがちなのが、Mautic をアップデートした時に、Cron コマンドが変更になっているかも
そんな時は

php /var/www/vhost/mautic/app/console

と入力すれば、そのバージョンの Mautic で使用できるコマンドリストが出てくるので、確認しておきましょう。

関連記事

宣伝・クレジット

CMS は断然 concrete5で決まり。 Mautic のコミュニティ支援や導入支援を行っている、コンクリートファイブジャパン株式会社では様々なサポートを提供しています。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2