再検証中:Ubuntu 16.04
下記、Dokcer内で、Ubuntu16.04のコンテナを起動し、Ubuntu16.04のコンテナ上で作業しました。基本的にはDockerを使っていない場合でも同じです。
コンテナに必要なイメージは、# docker pull ubuntu:16.04
で取得しました。
[下準備]
次のコマンドを実行し、タイムゾーンを日本時間に合わせることや「wget」などの基本的なツールのインストールといった下準備を行います。
# apt-get update -y && apt-get upgrade -y
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# dpkg-reconfigure tzdata
Geographic area: → 6 を入力 Time zone: → 76を入力
# apt-get install wget unzip nano software-properties-common mcrypt curl git -y
[MariaDB10.1.xのインストールと起動]
MariaDBは、MySQLから派生したMySQL互換のRDBです。CentOSなどでは、標準のデータベースがMySQLからMariaDBに切り替わっていますので、触れたことがある人も多いでしょう。基本的にはMySQLと同じです。
# apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
# add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.1/ubuntu xenial main'
# apt-get update -y && apt-get install mariadb-server -y
# service mysql start
[Mautic用DBの作成]
MariaDBのインストールが終わりましたら、次はMauticを導入するためのデータベースを作成します。
# mysql -u root -p
MariaDBのインストールで設定したパスワードを入力します。
MariaDB [(none)]> CREATE DATABASE mautic_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mautic_db.* TO mauticdbuser@'localhost' IDENTIFIED BY 'mautic_passwd';
- mautic_db:Mautic用データベース名
- mauticdbuser:Mautic用データベースユーザー名
- localhost:Mautic用データベースのホスト名
- mautic_passwd:Mautic用データベースのパスワード
これらの情報は初期セットアップ画面で使用します。
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q
[ApacheとPHPのインストール]
MauticではWebサーバーとPHP5.6以上が必要です。今回は、WebサーバーにApache2を、PHPには7.0を使用します。
# apt-get install apache2 php php-dev php-mysql php-pdo php-imap php-intl php-mcrypt php-curl php-gd php-cli php-pear php-mbstring php-xml php-zip libmysqlclient18 libc-client-dev libicu-dev libmcrypt-dev libssl-dev libapache2-mod-php -y
[Mauticのインストール]
後々APIを使用するために、Composerを用いてインストールします。また、インストールするMauticのバージョンは、16年7月13日時点の最新版を使用しています。
# cd /usr/local/src
# curl -sS https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer
最新版のMauticのソースコードをダウンロードします。こちらをクリックし、最新版のSource code(Zip)のリンク先URLをコピーします。コピーしたURLから、wgetコマンドで、Zip形式のソースコードを取得します。
# wget https://github.com/mautic/mautic/archive/master.zip
# unzip master.zip
# cd mautic-master/
# composer install
[OK] Cache for the "prod" environment (debug=false) was successfully cleared. と出ればOK。
# cp -r /usr/local/src/mautic-master /var/www/html/mautic
# chown -R www-data:www-data /var/www/html/mautic/app/cache
# chown -R www-data:www-data /var/www/html/mautic/app/logs
# chown -R www-data:www-data /var/www/html/mautic/app/config
# chown -R www-data:www-data /var/www/html/mautic/media/files
# chown -R www-data:www-data /var/www/html/mautic/media/images
# chown -R www-data:www-data /var/www/html/mautic/media/dashboards
# chown -R www-data:www-data /var/www/html/mautic/translations
# chmod -R 775 /var/www/html/mautic/app/cache
# chmod -R 775 /var/www/html/mautic/app/logs
# chmod -R 775 /var/www/html/mautic/app/config
# chmod -R 775 /var/www/html/mautic/media/files
# chmod -R 775 /var/www/html/mautic/media/images
# chmod -R 775 /var/www/html/mautic/media/dashboards
# chmod -R 775 /var/www/html/mautic/translations
[Apacheの設定変更]
Apacheの設定を変更し、開示されるサーバー情報を最小限に抑えます。Mauticを使用することでMauticを動かしているWebサーバーが外部に公開されますから、悪意ある第3者からの不正アクセスを防ぐためにもサーバー情報の開示は最小限にした方が良いでしょう。
Document rootの変更
# nano /etc/apache2/sites-available/000-default.conf
DocumentRoot /var/www/html → DocumentRoot /var/www/html/mautic に変更します。 また、</VirtualHost>の下に、
<Directory /var/www/html/mautic>
Options Includes FollowSymlinks
AllowOverride All
DirectoryIndex index.php index.html index.htm
</Directory>
を追記し、追記後、Ctrl + x キーを押し、y キーで保存します。
Apacheのセキュリティ設定変更
# nano /etc/apache2/conf-enabled/security.conf
下記を書き換えます。書き換え後は、Ctrl + x キーを押し、y キーで保存します。
ServerTokens OS → ServerTokens Prod に書き換え
ServerSignature On → #ServerSignature On に書き換え
# ServerSignature Off → ServerSignature Off に書き換え
security.confの書き換えはここまで。
# a2enmod rewrite
# service apache2 restart
Apacheの設定を変更しましたので、Apacheを再起動します。
[PHPの設定変更]
PHPの設定ファイルである「php.ini」の設定に変更および追記します。
# nano /etc/php/7.0/apache2/php.ini
下記を変更および追記して、保存します。Ctrl + x キーを押し、y キーで保存します。
[Data Handling]
post_max_size = 8M
をpost_max_size = 21M
に変更します。
post_max_sizeは、POSTデータの最大サイズで、upload_max_filesizeよりも少し大きくしておくと良いです。memory_limitを超えない数値を指定します。
[File Uploads]
upload_max_filesize = 2M
をupload_max_filesize = 20M
に変更します。
20Mとは、最大20MBのファイルをアップロードできるという意味です。
post_max_sizeを超えない数値を指定します。
[Date]
;date.timezone = のあとに、
date.timezone = Asia/Tokyo
を追記します。
[Resource Limits]
memory_limit = 128M
をmemory_limit = 256M
など135M以上に変更します。Mauticの設定画面で、「IPルックアップサービス」に「MaxMind GeoLite2 IP」を使用する場合は、memory_limitが135M以上でないとエラーを起こすため。
php.iniの変更および追記はここまで。
# service apache2 restart
PHPの設定を変更しましたので、Apacheを再起動します。
[Mauticの初期セットアップ]
Webブラウザで、http://Public IPアドレス
もしくは http://FQDN(ホスト名.ドメイン名) (例 http://mautic.abc.com)
にアクセスして、初期セットアップの画面にアクセスします。画面に従って、作業してください。
DockerなどでWebサーバーのポートを80番以外にしている人は、各自にて読み替えてください。
例 http://mautic.abc.com:8080
など
[初期セットアップ画面にアクセスできない場合]
- Webサーバーが停止していないかどうか
- Apache 起動の有無を確認
# service apache2 status
- Apache 再起動
# service apache2 restart
- Apache 起動の有無を確認
- データベースが起動しているかどうか
- MariaDB 起動の有無を確認
#service mysql status
- MariaDB 再起動
#service mysql restart
- MariaDB 起動の有無を確認
- ファイアウォール(UFW)の確認
- 設定確認
#ufw status
- 必要なポートが開放されていない場合は、ポートを空けます。
例 8080番ポートの場合は、
#ufw allow 8080/tcp
を実行します。 - Mauticでは、TCPで次のポートを利用できるようにしておく必要があります。80 / 3306 / 587 / 993
- ファイアウォールの有効化 # ufw enable
- 開放したポートに対する不正侵入対策として、定番かつ無料のものでは、Fail2banがあります。
- 設定確認
[初期セットアップ後にログインできない場合]
ログインURLは、下記のようになります。
Webブラウザで、http://Public IPアドレス/s/login
もしくは http://FQDN(ホスト名.ドメイン名) (例 http://mautic.abc.com)/s/login
例 http://mautic.abc.com:8080/s/login