mockroNotes -モックロノート-

ガジェットやイラスト、ワークアウトに関心を示すブログです

LEMP環境の構築[phpMyAdminをインストールする]

f:id:mockro:20210616234213p:plain


 MySQLMariaDBのようデータベース管理システムをWebベースのインターフェースで管理するためにphpMyAdminをインストールします。

前回:


 ステップ11 - phpMyAdminのインストール

すでにLEMPプラットフォームが導入されているので、phpMyAdminソフトウェアのインストールからすぐに始めることができます。

$ sudo yum install --enablerepo=remi-php73 phpMyAdmin

これでインストールは完了です。Nginx WebサーバーがphpMyAdminファイルを正しく見つけて提供するには、インストールファイルからNginxドキュメントルートディレクトリへのシンボリックリンクを作成する必要があります。

$ sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html

シンボリックリンクにアクセスしてphpMyAdminが利用可能か確認しましょう。 http://server_domain_or_IP/phpMyAdmin

フォルダアクセス権限に問題がある場合はアクセス権限を変更します。

$ sudo chgrp nginx /var/lib/php/session
$ sudo chmod 770 /var/lib/php/session/

ステップ12 - phpMyAdminインスタンスを保護する

phpMyAdminをボットによる攻撃から守るために、phpMyAdminインターフェイスの場所を変更します。

$ cd /usr/share/nginx/html
$ ls -l
-rw-r--r--. 1 root root 494  4月 17 00:14 50x.html
-rw-r--r--. 1 root root 612  4月 17 00:14 index.html
-rw-r--r--. 1 root root 219  5月  5 01:41 info.php
lrwxrwxrwx. 1 root root  21  5月  5 02:20 phpMyAdmin -> /usr/share/phpMyAdmin

このディレクトリにはphpMyAdminシンボリックリンクがあります。このリンク名は好きな名前に変更できます。

$ sudo mv phpMyAdmin nothingtosee
$ ls -l
-rw-r--r--. 1 root root 494  4月 17 00:14 50x.html
-rw-r--r--. 1 root root 612  4月 17 00:14 index.html
-rw-r--r--. 1 root root 219  5月  5 01:41 info.php
lrwxrwxrwx. 1 root root  21  5月  5 02:20 nothingtosee -> /usr/share/phpMyAdmin

これでphpMyAdminをインストール時に設定したシンボリックリンクにアクセスしても、404エラーになり、新しく設定したシンボリックリンクで利用可能になりました。 http://server_domain_or_IP/nothingtosee

Webサーバー認証ゲートの設定

インストールに必要な次の機能は、phpMyAdminのログイン画面が表示される前にユーザーがパスする必要があるという認証プロンプトです。 暗号化パスワードを作成するには、次のように入力します。

$ openssl passwd

使用するパスワードを入力して確認するように求められます。ユーティリティは暗号化されたパスワードを表示します。今回はPassword と入力してみました。 作成する認証ファイルに貼り付ける必要があるので、この値をコピーします。

mVRsMlnpwNgh.

次に認証ファイルを作成します。まず、Nginx設定ディレクトリに pma_passを配置します。 user_name:passwordを指定するだけです。

$ sudo vim /etc/nginx/pma_pass

+ demo:mVRsMlnpwNgh.

これで、Nginx設定ファイルを修正する準備が整いました。 default.confに新しいlocationセクションを追加します。 この例では、単に「Admin Login」を使用します。auth_basic_user_fileから、Webサーバーに作成した認証ファイルを指定するために呼び出されるディレクティブを使用する必要があります。Nginxはユーザーに認証の詳細の入力を促し、入力された値が指定されたファイルで見つかったものと一致することを確認します。

$ sudo nano /etc/nginx/conf.d/default.conf

server {
    . . .

    location / {
        try_files $uri $uri/ =404;
    }

+   location /nothingtosee {
+       auth_basic "Admin Login";
+       auth_basic_user_file /etc/nginx/pma_pass;
+   }

    . . .
}

新しい認証ゲートを実装するには、Webサーバーを再起動する必要があります。

$ sudo systemctl restart nginx

これで、WebブラウザphpMyAdminの場所にアクセスすると、pma_passファイルに追加したユーザ名とパスワードを入力するよう求められます。 (すでにphpMyAdminを使用している場合は、キャッシュをクリアするか別のブラウザセッションを使用する必要があるかもしれません。)


補足: WordPressのバージョンアップでエラーが出る場合、パーミッションの変更でうまくバージョンアップできるはずです。それでもバージョンアップできない場合は、SELINUXの原因が考えられます。

一時的にSELINUXでアクセス制限は行わないように変更。

$ setenforce 0

↓↓↓↓

WPのバージョンアップ ↓↓↓↓

SELINUXでアクセス制限を有効に戻す。

$ setenforce 1

 


参考にしたサイト