Mautic とは
Mautic とは Symfony で開発されているオープンソースのマーケティングオートメーションのツール。Introduction to Mautic (Japanese) によると、主な機能は以下の通り。
- モニタリング(ビジターのWebサイトその他での行動を監視し、トラッキングする)
- リードを特定する詳細情報
- ポイント(見込み客のランク付け)
- キャンペーン(営業サイクルに従ってリードを育てていくワークフロー)
- Eメール
- フォーム
- ランディングページ
- アセット(資料や動画などの顧客獲得用のデジタルコンテンツ)
- レポート
Mautic Meetup Tokyo へ参加したので記念パピコ。
発音は「モーティック」が一般的と思われるが、「マウティック」と言う人も多かった。
インストール
作業は VirtualBox にインストールしてある CentOS 7.2.1511 上で検証した。
ミドルウェアは Apache 2.4 / PHP 7.0 / MySQL 5.7 を選択している。
MySQL のセットアップ
インストール
yum install https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum install mysql-community-server
文字コードと自動起動の設定
cp -a /etc/my.cnf{,.org} && echo "character-set-server=utf8" >> /etc/my.cnf
systemctl enable mysqld
起動とセキュリティ設定
systemctl start mysqld
grep "temporary password" /var/log/mysqld.log | awk '{print $11}' # 初期パスワードを確認
mysql_secure_installation
DB と DB ユーザーの作成
openssl rand -base64 12 #パスワード用文字列の生成
cat << "_EOQ_" | mysql -u root -p
CREATE DATABASE `mautic` CHARACTER SET 'utf8';
GRANT ALL ON `mautic`.* TO `mautic`@`%` IDENTIFIED BY 'P@assw0rd';
_EOQ_
Apache と PHP のセットアップ
インストール
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm && yum -y update
yum install yum-utils && yum-config-manager --enable remi-php70
yum install httpd php php-gd php-imap php-intl php-mbstring php-mcrypt php-mysqlnd php-pecl-zip php-process php-xml
yum install php-opcache php-pecl-apcu
設定
sed -i 's|;date.timezone =|date.timezone = Asia/Tokyo|' /etc/php.ini
sed -i '/memory_limit =/s/128M/512M/' /etc/php.ini
cat << _EOF_ > /etc/httpd/conf.d/mautic.conf
ServerName localhost
<Directory "/var/www/html">
AllowOverride All
</Directory>
_EOF_
systemctl enable httpd
デフォルトだと .htaccess
が機能しないので AllowOverride
ディレクティブで許可する必要がある。
Apache のセキュリティ設定は「Apacheセキュリティ設定」を参考にしてほしい。
起動
httpd -t
systemctl start httpd
FirewallD
firewall-cmd --permanent --add-service=http && firewall-cmd --reload
Composer のセットアップ
Composer のインストール
curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
高速化対応
composer config -g repos.packagist composer https://packagist.jp
composer global require hirak/prestissimo
Composer は大変遅いので、リポジトリをレイテンシの少ない packagist.jp に切り替え、ダウンロード処理を高速化する prestissimo プラグインを追加する。
Mautic のセットアップ
インストール
yum install git
curl -L https://github.com/mautic/mautic/archive/master.tar.gz -o mautic.tar.gz -#
tar vzxf mautic.tar.gz -C /var/www/html --strip=1
cd /var/www/html
composer install
zip ではなく tar.gz をダウンロードして展開すればパーミッションの設定は変更する必要が無い。
所有権とコンテキストの変更
chown -R apache:apache app/{config,logs,cache} media translations
chcon -R -t httpd_sys_script_rw_t app/{config,logs,cache} media translations
SELinux が有効になっている場合、 app/config
app/logs
app/caches
ディレクトリのコンテキストを httpd_sys_content_t
から httpd_sys_script_rw_t
に変更しないと動作しない。
ブラウザからセットアップ
問題がなければ上記のように表示される。
このようなエラー画面が表示された場合、所有権とコンテキストの変更を再度実施する。
MaxMind の GeoLite2 の DB データ取得
php app/console m:ip:d
小技だが app/console
はコマンド名が重複していなければイニシャルだけで通る。
Cron の設定
cat << "_EOF_" | crontab
0-45/15 * * * * cd /var/www/html && /usr/bin/php app/console m:s:u
1-46/15 * * * * cd /var/www/html && /usr/bin/php app/console m:c:r
2-47/15 * * * * cd /var/www/html && /usr/bin/php app/console m:c:t
3-48/15 * * * * cd /var/www/html && /usr/bin/php app/console m:e:s
4-49/15 * * * * cd /var/www/html && /usr/bin/php app/console m:e:f
5-50/15 * * * * cd /var/www/html && /usr/bin/php app/console m:w:p
0 0 1-7 * * [ "$(date '+\%w')" -eq 3 ] && cd /var/www/html && /usr/bin/php app/console m:ip:d
_EOF_
2.0 からか一部コマンド名が変わったようで、日本語のドキュメントではまだ更新されていないので注意。
MaxMind のデータベース更新は「毎月第一火曜日」らしいので、第一水曜日の日本時間0時に実行するように設定。
トラッキングコードの設定
以下の JavaScript トラッキングコードを、 yourmautic.com
を Moutic を設置したURLに書き換えて </body>
タグの直前に貼り付ける。
<script>
(function(w,d,t,u,n,a,m){w['MauticTrackingObject']=n;
w[n]=w[n]||function(){(w[n].q=w[n].q||[]).push(arguments)},a=d.createElement(t),
m=d.getElementsByTagName(t)[0];a.async=1;a.src=u;m.parentNode.insertBefore(a,m)
})(window,document,'script','http(s)://yourmautic.com/mtc.js','mt');
mt('send', 'pageview');
</script>