環境
マシン環境 | Hyper-V仮想マシン |
OS | ubuntu18.04LTS |
参考にしたサイト | https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-18-04 |
初めに
MySQLデータベースサーバー/Apacheサーバー/PHPのインストールが済んでいることが前提条件です。
まだの方は、ubuntu18.04にLAMP環境をインストールするの記事を参照してください。
phpMyAdminは、ユーザーがWebインターフェイスを通じてMySQLと対話できるように作成されました。
phpMyAdminのインストール
デフォルトのUbuntuリポジトリからphpMyAdminをインストールします。
sudo apt update
sudo apt install phpmyadmin php-mbstring php-gettext
サーバー選択の場合は、 apache2
デフォルトでは「apache2」が強調表示されますが、選択されていません。
SPACEキーで「*」を表示させて選択します。
dbconfig-commonを選択するかどうかを尋ねられたとき:[Y]
phpMyAdminのMySQLアプリケーションパスワードを選択して確認するように求められます。
インストールプロセスでは、/etc/apache2/conf-enabled/ディレクトリにphpMyAdmin Apache設定ファイルが追加され、自動的に読み込まれます。
mbstringPHPエクステンションを明示的に有効にします。
sudo phpenmod mbstring
変更が認識されるようにApacheを再起動します。
sudo systemctl restart apache2
これでphpMyAdminがインストールされ、設定されました。
https://officeyuai.0am.jp/phpmyadmin
phpMyAdminインスタンスを保護する
Apacheの組み込みの.htaccess
認証機能と認可機能を使用して不正アクセスを防ぎます。
/etc/apache2/conf-available/phpmyadmin.confファイルを編集し、1行追加します。
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .
この行を追加したら、ファイルを保存して閉じ、Apacheを再起動します。
sudo systemctl restart apache2
/usr/share/phpmyadmin/.htaccessファイルを作成します。
sudo nano /usr/share/phpmyadmin/.htaccess
内容を以下のようにします。
AuthType Basic
AuthName “Restricted Files”
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
- AuthType Basic:この行は、実装している認証タイプを指定します。
このタイプは、パスワードファイルを使用したパスワード認証を実装します。 - AuthName:認証ダイアログボックスのメッセージを設定します。
権限のないユーザーが何が保護されているかについての情報を得ることができないように、この一般名を保持する必要があります。 - AuthUserFile:認証に使用するパスワードファイルの場所を設定します。
これは、提供されているディレクトリの外にある必要があります。
まもなくこのファイルを作成します。 - Require valid-user:これは、認証されたユーザーだけにこのリソースへのアクセスを許可するように指定します。
これは、実際に許可されていないユーザーが入るのを阻止するものです。
終了したら、ファイルを保存して閉じます。
パスワードファイル用に選択した場所は、”/etc/phpmyadmin/.htpasswd”です。
htpasswdユーティリティを使用して初期ユーザーを渡すことができます。
sudo htpasswd -c /etc/phpmyadmin/.htpasswd <ユーザー名>
作成するユーザーのパスワードを確認するよう求められます。
その後、入力したハッシュされたパスワードでファイルが作成されます。
追加のユーザを入力したい場合は以下のようにします。
sudo htpasswd /etc/phpmyadmin/.htpasswd <追加ユーザー名>
これで、phpMyAdminサブディレクトリにアクセスすると、今設定したアカウント名とパスワードを入力するよう求められます。
Apache認証を通ると、通常のphpMyAdmin認証ページが表示されます。