![見出し画像](https://assets.st-note.com/production/uploads/images/152500619/rectangle_large_type_2_da94f250b1b340e1e847e4040df79fa8.png?width=1200)
第4回 Matomo導入手順(ミドルウェア編)
【登場人物】
![](https://assets.st-note.com/img/1725008010694-LsDPYmxTdr.png)
IT営業アシスタント。上司にネットでの製品PRを命じられ、ウェブサイトを作ることになった。ただ、でき上がったサイトをどう運営していけばいいかわからず悩んでいる。
![](https://assets.st-note.com/img/1725008021392-HknOQsQ92T.png)
元SE。今はアクセス解析ツールの営業。
Webマーケティングについてお客様に日々説明をしている。
![](https://assets.st-note.com/img/1725008035792-5a0AEj8xWO.png)
アクセス解析の技術者。
アクセス解析の重鎮、生き字引、サポートの鬼。
アクセス解析でわからないことがあれば何なりと。
![](https://assets.st-note.com/img/1725008049811-kjbLiJ5v5Q.png?width=1200)
さてAWSでLinux OSのインストールはできたんだけど(第3回 Matomo導入手順(プラットフォーム編)参照)起動したばかりのサーバーは、OSのモジュールが最新でないことがあるんだ。
WindowsでいうWindows Updateを行うように、Linux OSでもパッケージ更新をしておこう。
![](https://assets.st-note.com/img/1725008057095-tQuAMddfcj.png?width=1200)
ターミナル画面を使用すると思いますが、ターミナル画面の起動方法などおさらいしてもらえますか。
![](https://assets.st-note.com/img/1725008084255-ZsMipppbmK.png?width=1200)
そうですね。前回までの復習を兼ねて教えてください。
![](https://assets.st-note.com/img/1725008049811-kjbLiJ5v5Q.png?width=1200)
ターミナルソフトはいろいろあるけど、ここではTeratermを使うね。起動するとこんな画面が表示される。
![](https://assets.st-note.com/img/1725008238743-FdZ4DKLgCE.png)
「ホスト」にはAWSで作成したサーバーのグローバルホスト名を入力する。IPアドレスでも大丈夫だよ。
グローバルホスト名(パブリックIPv4DNS)はAWSコンソールのEC2の画面で確認しておこう。
![](https://assets.st-note.com/img/1725499836-ZMmOF4jXqxIcElYebsS5wit0.png?width=1200)
サーバーに接続すると、こんな画面になる。
![](https://assets.st-note.com/img/1725008260416-p2DCZpnal0.png)
ユーザー名は「ec2-user」を入力する。
パスフレーズは空白のままで、代わりに鍵ファイルを使うので「RSA/DSA/ECDSA/ED25519鍵を使う」をクリックして、接続するEC2のプライベートキーファイルを「…」ボタンから選んで設定しよう。
OKボタンでログインするとこんな画面になる。
![](https://assets.st-note.com/img/1725008285968-INTle51HI0.png?width=1200)
ここから先は、キーボードでコマンドを打ち込んで進めていくよ。
![](https://assets.st-note.com/img/1725008084255-ZsMipppbmK.png?width=1200)
スペルミスなど、ターミナルでの操作に少し不安があります。その場合の対処方法などはありますか?
![](https://assets.st-note.com/img/1725008049811-kjbLiJ5v5Q.png?width=1200)
文字を打ち間違えた場合は、単にメッセージが返ってきて何も動かないので、正しいコマンドを入力しなおせば大丈夫。
最初に行うコマンドは、管理者ユーザー(root)に変わることだよ。
sudo -i
コマンドの最後には「Enter」キーを押す。そうするとコマンドがOSに認識されるんだ。
管理者ユーザーになったらパッケージ管理コマンドでupdateしよう。
dnf -y update
次に、matomoで使うミドルウェアをインストールしよう。
ミドルウェアというのは、アプリケーションソフトが使う、表面からは見えないソフトウェアのことだよ。
Matomoで必要なミドルウェアは以下の通り。
Apache(HTTPサーバー)
MariaDB(データベース)
PHP
PHPモジュール各種
コマンドにするとこうなるね。
dnf -y install httpd mariadb105-server php8.2*
これでApache Webサーバーとデータベース、PHPがインストールできたよ。
![](https://assets.st-note.com/img/1725008084255-ZsMipppbmK.png?width=1200)
PHPのバージョンが8.2と指定されていますが、何か理由があるのでしょうか?
![](https://assets.st-note.com/img/1725008049811-kjbLiJ5v5Q.png?width=1200)
Amazon Linux 2023は、PHPのバージョンごとにパッケージが分かれているので、こんな風に指定する必要があるんだ。
PHPとDBについては、標準の設定ではちょっとMatomoを動かすのに向いていないので、設定ファイルを編集しておくよ。
まずはPHPの設定ファイル「/etc/php.ini」を編集しよう。編集には「nano」というテキストエディタを使う。
nano /etc/php.ini
編集画面はこんな風になるよ。
![](https://assets.st-note.com/img/1725008523166-HGHNcTkQU3.png?width=1200)
編集するのは「max_execution_time」という設定だ。これはPHPのプログラムを動かしたときに何秒までタイムアウトにしないかを決めるものだけど、デフォルトでは30秒になっているので、これを600秒にしよう。
どこを編集するのかを検索するには Ctrlキーを押しながらwキーを押す(以下この記事では「Ctrl-w」のように表記する)と検索モードになるので、そこに「max_execution_time」と入力する。そうするとファイルの中のその場所までカーソルが移動するよ。
![](https://assets.st-note.com/img/1725008552658-FqNgm545B0.png?width=1200)
この行の「30」を消して「600」に書き換える。終わったらファイルを保存して終了しよう。
ファイルの保存は「Ctrl-o」。ファイル名を聞かれるので、そのままEnterを押そう。
終了するには「Ctrl-x」。これでシェルプロンプトに戻ってくる。
次はDBの設定ファイル「/etc/my.cnf.d/」。同じようにnanoで編集しよう。
nano /etc/my.cnf.d/mariadb-server.cnf
![](https://assets.st-note.com/img/1725008580086-8Vij5Yu22V.png?width=1200)
追記する設定は次の3行だよ。
innodb_buffer_pool_size = 1024M データ処理で使えるメモリ量の上限
innodb_log_file_size = 64M ログファイルのサイズ。大きいほどフラッシュ回数が減って高速化する
max_allowed_packet = 128M サーバーが受信できる最大許容パケットサイズ。
追記する場所は、[mysqld]セクション。追記するとこんな感じになる。
![](https://assets.st-note.com/img/1725008659626-oDf9vnoLSB.png?width=1200)
編集ができたら、さっきと同じようにCtrl-oとCtrl-xでファイルを保存して終了しよう。
インストールしたApacheやDBは、まだ起動していないから、サービス(バックグラウンドで動作するプログラム)として動くように設定するよ。
systemctl start httpd
systemctl start mariadb
systemctlコマンドはサービスの設定を行うコマンドなんだ。
「start」はサービスを起動すためのオプションだよ。
これで、ApacheとDBがバックグラウンドで動作をしている状態になったよ。
サーバーを停止したり再起動すると、サービスは終了してしまうので、起動時に自動的に動作するように設定しておこう。
systemctl enable httpd
systemctl enable mariadb
「enable」はシステムの起動時にサービスを自動起動するためのオプション。
これでサーバーを再起動したときも、自動的にこのサービスは起動するようにできた。
では、PCのブラウザでこのサーバーにアクセスしてみよう。
ブラウザのアドレスバーにEC2のIPアドレスを入力して、次のような画面が表示されたらウェブサーバーは起動しているということだね。
![](https://assets.st-note.com/img/1725008945849-V6NoANxowO.png?width=1200)
次はデータベースの設定だ。
「データベース」と読んでいるけど、一般的にはデータを格納する機能を制御する「データベース管理システム(DBMS)」と、保存や読みだしするデータそのものを格納する「データベース領域」をあまり区別しないでいるね。
ここで行うのは「データベース領域」の作成と、それにアクセスするための「ユーザー情報」を定義することだよ。
まずは、データベース管理システムへの接続(ログイン)を行う。
「mysql」というコマンドを使うと以下のようにDBMSのプロンプトが表示される。
mysql
MariaDBはMySQL互換のDBMSだ。だから接続用のコマンドは「mysql」だけど、実際につながる先はプロンプトが示しているように「MariaDB」なんだ。
続いてcreate databaseコマンドでデータベース領域(一般的にこれをDBと呼ぶ)を作成するよ。
DBの名前は「matomo」にしておくね。
create database matomo default character set utf8 collate utf8_bin;
次はcreate userコマンドでユーザーを作成する。ユーザー名は「matomo_user」だ。
create user 'matomo_user'@'localhost' identified by 'PassWord';
最後にgrantコマンドで、ユーザーmatomo_userが、さっき作ったDBにアクセスできるように権限を持たせる。
grant all on matomo.* to 'matomo_user'@'localhost';
これでユーザー「matomo_user」はパスワードを使ってDB「matomo」にアクセスできる権限を持つようになったよ。
これでDBの設定は終わったので、mysqlプロンプトを終了するね。
quit
次回は、「Matomo」をインストールして初期設定を行っていこう。
関連リンク
サイオステクノロジー「アクセス解析・データ活用」サービスの紹介
note「初心者のための優しいアクセス解析入門マガジン①」
note「初心者のための優しいアクセス解析入門マガジン②」