データベースをウェブインターフェースで操作するために、phpMyAdminというウェブエディターがあります。このツールは、MariaDBデータベースに接続し、既存のデータベースを表示したり、新しいデータベースを作成したり、テーブル内のデータを編集したりできます。基本的には、mysqlコンソールでできることと同じですが、特に頻繁にデータを操作する際に、はるかに便利でわかりやすいです。Nginx + MariaDB + PHP (LEMP) 事前設定済みのDebian 12 LinuxサーバーにphpMyAdminをインストールする方法を見てみましょう。
すべての設定はrootユーザーで行いますが、通常のユーザーを使用している場合は、コマンドの前にsudoを追加してください。
1. 必要なコンポーネントとデータベースエディター自体をインストールする
apt install php-mbstring
apt install phpmyadmin
インストールプロセス中に、エディターをどのウェブサーバーに設定するか選択するように求められます。
- []apache2
- []lighttpd
このサーバーにはLEMPが事前にインストールされているため、両方のフィールドを空のままにしてOKをクリックします。
次に、エディター自体のユーザー設定や必要なデータを保存するためのデータベースを作成するかどうかが提案されます。ここでは「はい」を選択し、次のウィンドウでphpmyadminユーザーのパスワードを設定するよう求められます。パスワードを入力し、次のウィンドウで確認して入力ミスを防ぎます。
2. 基本設定
http://server-ip/phpmyadmin のリンクにアクセスして動作を確認します。ログインには、作成したばかりのデータベースのログイン情報や、phpmyadminのログインと設定したパスワードを使用できます。時には、複数のデータベースを一度に操作する必要があるため、すべてのデータベースを1人のユーザーで表示するには、ユーザーを作成し、rootユーザーの権限を委譲する必要があります。
mysql -u root -p
CREATE USER 'alldbuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON . TO 'alldbuser'@'localhost';
FLUSH PRIVILEGES;
これで、alldbuserユーザーでログインすると、このサーバー上で作成されたすべてのデータベースが表示されます。
rootユーザーにパスワードを設定する必要がある場合は、次のコマンドを使用します:
mysql -u root
use mysql;
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD';
FLUSH PRIVILEGES;
exit
phpMyAdminフォルダーへのリンクをnginxウェブサーバーのルートディレクトリに追加します:
ln -s /usr/share/phpmyadmin /usr/share/nginx/html
3. セキュリティ設定
データベースエディターをパスワードの推測や潜在的な脆弱性から保護するため、サーバーレベルで認証を追加します。
vi /etc/nginx/conf.d/default.conf
location /phpmyadmin {
auth_basic "Admin Login";
auth_basic_user_file /etc/nginx/pma_pass;
}
ユーザーを追加し、パスワードを指定します:
htpasswd -c /etc/nginx/pma_pass pma_username
nginxサービスを再起動します:
systemctl restart nginx
これで、http://server-ip/phpmyadmin にアクセスすると、ログインとパスワードを入力するウィンドウが表示されます。ログインはpma_usernameとなります。
設定は完了しました。SSL証明書を使用してhttpsプロトコル経由でのみパスワードを入力し、データの傍受を防ぐことを強くお勧めします。