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