再検証中: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 = 8Mpost_max_size = 21Mに変更します。 post_max_sizeは、POSTデータの最大サイズで、upload_max_filesizeよりも少し大きくしておくと良いです。memory_limitを超えない数値を指定します。

[File Uploads]

upload_max_filesize = 2Mupload_max_filesize = 20Mに変更します。 20Mとは、最大20MBのファイルをアップロードできるという意味です。 post_max_sizeを超えない数値を指定します。

[Date]

;date.timezone = のあとに、

date.timezone = Asia/Tokyo を追記します。

[Resource Limits]

memory_limit = 128Mmemory_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
  • データベースが起動しているかどうか
    • MariaDB 起動の有無を確認 #service mysql status
    • MariaDB 再起動 #service mysql restart
  • ファイアウォール(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

results matching ""

    No results matching ""