Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@katzueno

Mautic の cron 設定サンプル

More than 3 years have passed since last update.

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 のコミュニティ支援や導入支援を行っている、コンクリートファイブジャパン株式会社では様々なサポートを提供しています。

2
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
katzueno
concrete5 Japan コミュニティリーダー。コンクリートファイブジャパン株式会社の CCO。YokosoNews で日本を英語で世界に発信。元々はロスでインディー映画制作やエンタメ雑誌の編集。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?