Vagrant + CentOS8でLAMP環境を構築 – Part2 –

Vagrant + CentOS8でLAMP環境を構築 – Part2 –

前回まで

前回までのパートで、Apache と PHP の設定まで完了しました。

今回の記事では、MySQL と PHPAdmin の導入を行っていきます。

MySQL8 のインストール

CentOS8 では、デフォルトで MySQL8 がインストールできるので、別途リポジトリを入れる必要はありません

dnf install -y @mysql

下記のコマンドでインストールされているか確認します。ここでは、バージョン8.0.21がインストールされています。

systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
# warningが出力されていないことを確認する

コンフィグファイルの編集

設定ファイルは /etc/my.cnf.d 配下に設置されています。以前は /etc/my.cnf に合ったようですが、このファイルを開いてみると以下のような記述がされています。

cat /etc/my.cnf

~~~~~
# This group is read bo
th both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d <--★/etc/my.cnf.d から読み込んでいると書かれている

この /etc/my.cnf.d には以下のファイルが存在していました。

cd /etc/my.cnf.d
ls

~~~~~
client.cnf
mysql-default-authentication-plugin.cnf
mysql-server.cnf

新しく設定ファイルを作成し、設定を記述していきます。

設定と言っても文字コードの設定しか行っていないのですが、この utf8mb4_ja_0900_as_cs_ks というのは、ひらがなとカタカナを判別する新しい Collation(コレーション:照合順序)です。

cd /etc/my.cnf.d

# 設定ファイルを作成
touch common.cnf

# 設定を記述する
cat >> common.cnf << "EOF"
# 文字コード設定/照合順序設定
[mysqld]
collation_server = utf8mb4_ja_0900_as_cs_ks
EOF

# mysqldを再起動
systemctl restart mysqld
systemctl status mysqld
# worningなど出ていないか確認

mysql にログインして色々確認します。

mysql -u root -p
# パスワードの入力を問われるが、何も入力せずにエンターキーを押す
# デフォルトではrootユーザーのパスワードは空になっている

# 文字コードの確認
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

# 照合順序確認
mysql> show variables like '%collation%';
+-------------------------------+--------------------------+
| Variable_name | Value |
+-------------------------------+--------------------------+
| collation_connection          | utf8mb4_0900_ai_ci       |
| collation_database            | utf8mb4_0900_ai_ci       |
| collation_server              | utf8mb4_ja_0900_as_cs_ks |
| default_collation_for_utf8mb4 | utf8mb4_0900_ai_ci       |
+-------------------------------+--------------------------+
4 rows in set (0.00 sec)

# ログアウト
mysql> exit;

phpMyAdmin のインストール

まずは phpMyAdmin をダウンロードしてきます。その他のバージョンは以下のサイトから確認出来ます。

# ホームディレクトリへ移動
cd /home/vagrant
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip

# wgetコマンドが見つからないと言われたらインストールしておきます
dnf -y install wget

ダウンロードしてきたファイルを解答して移動します。

# ファイルを解答
unzip phpMyAdmin-5.0.2-all-languages.zip

# unzipコマンドがインストールされていなければ、インストールします
dnf -y install unzip

# ファイルを移動する(/usr/share/ 配下にphpMyAdminという新しいディレクトリも同時に作成される)
mv phpMyAdmin-5.0.2-all-languages /usr/share/phpMyAdmin

config.inc.php の作成・編集

# 設定ファイルの雛形をコピー
cp -pr /usr/share/phpMyAdmin/config.sample.inc.php /usr/share/phpMyAdmin/config.inc.php

# 作成した設定ファイルを編集していく
vim /usr/share/phpMyAdmin/config.inc.php
"config.inc.php"
// config.inc.php

・・・ 中略 ・・・

// パスワードフレーズを入力する(18行目あたり)
// ここのパスワードとmysql側で設定する rootユーザー のパスワードを合わせておきます
$cfg['blowfish_secret'] = '任意のパスワード'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

ブラウザから表示できるように phpMyadmin.conf を編集する

/etc/httpd/conf.d/ 配下に phpMyAdmin.conf ファイルを作成して設定を記述していきます。Apache のバージョンによって記述方法が違いますが、今回は Apache2.4 に対応した記述のみ記載します。

vim /etc/httpd/conf.d/phpMyAdmin.conf
"/etc/httpd/conf.d/phpMyAdmin.conf"
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
    #Apache 2.4
    <RequireAny>
     Require all granted
    </RequireAny>
  </IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
   <IfModule mod_authz_core.c>
    #Apache 2.4
    <RequireAny>
     Require all granted
    </RequireAny>
   </IfModule>
</Directory>

設定を反映させるために、httpd を再起動しておきます。

systemctl restart httpd
systemctl status httpd
# warningなど出力されていないか確認

ここまでの設定でブラウザのアドレスバーに、[サーバのIP]/phpmyadmin/ を打ち込むと phpMyAmin の画面にアクセスできるようになりました。

phpmyadmin

MySQL の root ユーザーのパスワード変更

config.inc.phpの設定で入力したパスワードを元に、MySQL 側の root ユーザーのパスワードも変更していきます。デフォルトでは空のパスワードとなっています。

mysql -u root -p
# パスワードの入力を問われるが、何も入力せずにエンターキーを押す

# データベースの一覧表示
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

# 使用するデータベースの切り替え
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

# rootユーザーのパスワード変更
ALTER USER 'root'@'localhost' IDENTIFIED BY '新しいパスワード';
Query OK, 0 rows affected (0.01 sec)

# ログアウト
mysql> exit;

ここまでユーザー名に root 、上記で設定したパスワード入力したらログイン出来ると思います。

最後に

インストールするソフトウェアのバージョンによって config ファイルの記述方法が変わったり何かとハマりやすい環境構築ですが、一度手順を洗い出しておくと次からの設定は楽になると思います。環境構築に苦戦している方や、はじめて LAMP 環境の構築をチャレンジしている方の手助けになれば幸いです。

次回から Laravel 環境を構築していきます。