LEMP(Linux+Nginx+MySQL+PHP)環境の構築(3)

次に、MySQL と php8.1 用 extension をインストールします。例によって sudo は省略しています。(sudo su として進めることもできます。)

$ apt update
$ apt install mysql-server php8.1-mysql

続いて、MySQL の初期設定ウィザードを実行します。色々な質問で確認してきます。

$ mysql_secure_installation

はじめに、パスワード検証コンポーネントを利用するか確認してきます。お好みでどうぞ。
ローカル開発環境用でしたので n にしました。

次に、元から用意されている匿名ユーザは除去してよいので y でカットしました。

次に、root アカウントでリモート接続を許可する必要はないので y にします。
最終的にレンタルサーバー上で稼働させる場合や DB サーバを別に立てた場合にも、必要な権限をもたせたアカウントを用意するべきだと思いますので、必要ありません。

次は、デフォルトで用意される test データベースを除去するかどうか。不要ですので y にしました。

最後に、設定をすぐ反映するか確認してきます。y で進めます。

設定が終わったのでログインし、アクセス用のユーザを作成していきます。

$ mysql -u root

ログイン用のユーザを作ります。ここでは mysqladmin としました。

mysql> CREATE USER 'mysqladmin'@'localhost' IDENTIFIED BY '<パスワード>';
mysql> exit

さて、ここからはブラウザで DB にアクセスできるようにする為、PhpMyAdmin をこちら(https://www.phpmyadmin.net/)からダウンロードし、[アーカイブマネージャ] で開いて展開します。
Terminal から実行する場合には、以下で対応します。(これを書いている時点では phpMyAdmin-5.2.1-all-languages.zip がダウンロードできましたのでこの前提です。)

$ cd <ダウンロードパス>
$ unzip phpMyAdmin-5.2.1-all-languages.zip

同名のフォルダができて中に解凍されますので、この中身を前回準備しておいた /var/www/html/phpmyadmin 下にコピーします。

$ cd /var/www/html/phpmyadmin
$ cp -r <ダウンロードパス>/phpMyAdmin-5.2.1-all-languages/* .

Nginx の設定ファイルを作成します。default ファイルを phpmyadmin.conf の名前でコピーし、末尾のコメント部分を編集して後述のようにします。VSCode で対応してもよいと思います。

$ cd /etc/nginx/sites-available
$ cp default phpmyadmin.conf
$ nano phpmyadmin.conf

ブラウザから localhost でアクセスした時には開発するシステムへ、ホスト名 vm101 でアクセスした時には PhpMyAdmin が動作する設定です。

/etc/nginx/sites-enabled 下へリンクを作り、動作確認しましょう。

$ cd /etc/nginx/sites-enabled
$ ln -s /etc/nginx/sites-available/phpmyadmin.conf .
$ ls
$ ls -l
$ nginx -t
$ systemctl restart nginx

ブラウザで、http://vm101/phpmyadmin と入力します。設定ミスがなければログイン画面がでてきます。
先程の mysqladmin を使ってログインします。