データベースをWebインターフェースから操作するために、phpMyAdminというWebエディタがあります。このツールはMySQL/MariaDBデータベースに接続し、既存のデータベースを表示し、新しいデータベースを作成したり、テーブル内のデータを編集することができます。基本的には、mysqlコンソールでできることと同じですが、データ作業が頻繁な場合は、より便利で視覚的に操作できます。ここでは、LAMPが事前にインストールされたUbuntu 20.04にphpMyAdminをインストールする方法を説明します。
すべての設定はrootユーザーで行いますが、通常のユーザーを使用する場合は、コマンドの前にsudo
を追加してください。
1. 必要なコンポーネントとデータベースエディタそのものをインストールします
apt install php-mbstring
apt install phpmyadmin
インストール中に、どのWebサーバーにエディタを設定するかを選択する画面が表示されます。
- [*]apache2
- []lighttpd
今回はLAMPが事前にインストールされているサーバーのため、apache2を選択します。
次に、データベースエディタ自体のためのデータベースを作成するかどうかを尋ねられます。ここでは「はい」を選択し、次の画面でphpmyadminユーザー用のパスワードを設定するように求められます。パスワードを入力し、次の画面で確認して入力ミスを避けます。
設定を反映させるため、Webサービスを再起動します:
/etc/init.d/apache2 restart
/etc/init.d/php7.4-fpm restart
2. 基本設定
http://server-ip/phpmyadmin にアクセスして動作を確認し、任意のデータベースのログイン情報を入力します。例えば、先ほど作成したphpmyadminのログイン名と設定したパスワードです。複数のデータベースを一度に操作する必要がある場合、1人のユーザーでそれらを表示できるように、rootユーザーの権限を委譲する必要があります。
mysql -u root -p
CREATE USER 'alldbuser'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON . TO 'alldbuser'@'localhost';
FLUSH PRIVILEGES;
これで、alldbuserユーザーでログインすると、そのサーバー上に作成されたすべてのデータベースが表示されます。
3. セキュリティ設定
データベースエディタを保護し、パスワードの推測や潜在的な脆弱性を防ぐために、Webサーバーレベルで認証を追加します。
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
ユーザーを追加し、そのパスワードを設定します:
htpasswd -c /etc/phpmyadmin/.htpasswd webdb-user
Webサーバーレベルでの設定を適用するために、/etc/apache2/apache2.confファイルでAllowOverrideの値をAllに変更します。設定ブロックは以下のようになります:
AllowOverride All
Require all granted
Webサービスを再起動します。お使いのWebサーバーに応じて、次のコマンドを実行してください:
/etc/init.d/apache2 restart
/etc/init.d/php7.4-fpm restart
これで、http://server-ip/phpmyadmin にアクセスすると、ログイン画面が表示されます。ここでのログイン名はwebdb-userです。また、未知のIPアドレスからのアクセスに対してパスワード入力画面を表示させず、「Forbidden」というメッセージを表示する設定を追加することもできます。次の行を.htaccessファイルに追加し、静的IPアドレスを指定してください:
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Allow from 77.88.99.11 22.33.44.55
設定が完了しました。SSL証明書を使用したhttpsプロトコルを使用してパスワードを入力することを強く推奨します。そうすることで、データの盗聴を防ぐことができます。