最近、Mautic に触る機会があり、環境を構築してみたのですが、PHP のライブラリ関係や composer 等々の必要要件に関するの情報が乏しく、思いのほか手間どってしまいましたので、悩まれている方の参考になればと思い書いていきたいと思います。
環境
最終的に落ち着いた環境になります。
Composer も 2 系のバージョンでもいけるかと思いきや、バージョン 1 系じゃないとダメでした。。。
・Mautic 3.3.3
・Ubuntu 20.04
・PHP 7.4.20
・PHP-FPM 7.4.20
・Nginx 1.18.0
・MariaDB 10.3.29
・Composer 1.10.22
Vagrant 起動
Vagrant の設定ファイルを一部抜粋します。
OS は以下を使用
config.vm.box = "bento/ubuntu-20.04"
権限まわり設定
Vagrant でよく引っかかる権限まわりです。
Mautic では、ディレクトリの権限まわりが厳しいため、以下の設定でパーミッションを変更します。
config.vm.synced_folder ".", "/vagrant", create: true, owner: "vagrant", group: "vagrant", mount_options: ['dmode=777','fmode=777']
Vagrant の vagrant-hostsupdater を使用して hosts ファイルに IP とドメインの紐付けを記述する設定となります。
※vagrant-hostsupdater をインストールされていない場合には、スルーしてください。
config.vm.network "private_network", ip: "192.168.33.10"
config.hostsupdater.aliases = ["local.na-mautic.com"]
Vagrant を起動します。
$ vagrant up
起動したら仮想サーバーへ接続します。
$ vagrant ssh
接続できたら、次に環境を整えていきたいと思います。
必要ライブラリのインストール
まずは、インストール可能なパッケージの一覧とインストール済みパッケージの更新を行います。
$ sudo apt update && sudo apt upgrade
そして、必要なライブラリインストールします。
$ sudo apt install vim git unzip curl -y
MariaDBインストールと設定
MariaDB をインストールしていきます。
※ちなみに、MariaDB の現在の最新版の 10.5 をインストールして試したところ、Mautic の初期設定画面の DB 設定画面でバージョン関係のエラーとなりましたので、今回、通常インストールからの 10.3 をインストールしてます。
$ sudo apt -y install mariadb-server
インストールが完了したら初期化します。
※初期化の詳細内容は割愛します。m(_ _)m
$ mysql_secure_installation
初期化が完了したら、ログインして Mautic 用のデータベースとユーザーを作成します。
$ sudo mysql -u root -p
Enter password:
> CREATE USER mautic_user@localhost IDENTIFIED BY 'password';
> CREATE DATABASE mautic;
> GRANT ALL PRIVILEGES ON mautic.* TO mautic_user@localhost;
> FLUSH PRIVILEGES;
PHP のインストールと設定
PHP をインストールしていきます。
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
$ sudo apt install -y php7.4
$ sudo apt install php7.4-{cli,fpm,json,common,mysql,zip,gd,mbstring,curl,xml,bcmath,imap,intl}
インストールが完了したら設定ファイルを修正します。
※今回は、必要最小限の設定になってます。
$ sudo vim /etc/php/7.4/fpm/php.ini
;memory_limit = 128M
memory_limit = 512M
[Date]
date.timezone = Asia/Tokyo
Composerインストール
Composer をインストールしていきます。
※最初は現在の最新版のバージョン 2 系をインストールしましたが、「composer install」でエラーとなり、エラーの内容を確認すると 対応しているバージョン 1 系となってましたので、結局、 1 系のインストールにしてます。
(※最新のハッシュ値やインストール方法については、本家サイトを一度ご確認ください。
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php --version=1.10.22
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer
Mautic ソースコードダウンロード
Mautic のソースコードをダウンロードします。
$ cd /vagrant
$ wget https://github.com/mautic/mautic/archive/refs/tags/3.3.3.zip
ダウンロードが完了したらソースコードを展開します。
$ unzip 3.3.3.zip -d mautic
Composer コマンド実行します。
$ cd mautic
$ composer install
Nginx インストールと設定
Nginx をインストールします。
$ sudo apt install nginx
インストールが完了したら設定ファイルを設置します。
$ sudo vim /etc/nginx/site-available/mautic.conf
設定ファイルの内容は以下となります。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name example.com;
root /vagrant/mautic;
index index.html index.htm index.php;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_read_timeout 240;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_split_path_info ^(.+.php)(/.+)$;
}
rewrite ^themes/.*/(layouts|pages|partials)/.*.htm /index.php break;
rewrite ^bootstrap/.* /index.php break;
rewrite ^config/.* /index.php break;
rewrite ^vendor/.* /index.php break;
rewrite ^storage/cms/.* /index.php break;
rewrite ^storage/logs/.* /index.php break;
rewrite ^storage/framework/.* /index.php break;
rewrite ^storage/temp/protected/.* /index.php break;
rewrite ^storage/app/uploads/protected/.* /index.php break;
}
設定ファイルを作成したら内容に問題ないかチェックします。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
問題なければ、上記で作成した mautic.conf を sites-enabled にシンボリックリンクを設定します。
$ cd /etc/nginx/sites-enabled/
$ ln -s /etc/nginx/sites-available/mautic.conf mautic.conf
そして、最後に Nginx と PHP-FPM を再起動します。
$ sudo systemctl restart nginx php7.4-fpm
※Apacheの自動起動も停止しておきます。
$ sudo systemctl disable --now apache2
動作確認
最後に動作確認をします。
ブラウザを起動し、「http://local.na-mautic.com」へアクセスし、Mauticのインストール画面が表示されれば完了です。
※「http://local.na-mautic.com」は、こちらの環境で設定したURLになりますので、環境に合わせてご確認をお願いします。
(画面キャプチャを取り忘れしまいました。。。orz)
コメント