LEMP環境の構築[phpMyAdminをインストールする]
MySQLやMariaDBのようデータベース管理システムを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
参考にしたサイト