phpMyAdminは、MySQLおよびMariaDB用の無料のオープンソース管理ツールです。 phpMyAdminは、MySQLまたはMariaDBデータベースを簡単に管理できるWebベースのツールです。 phpMyAdminを使用して、データベースの作成、編集、削除、データベースバックアップのインポートとエクスポート、検索の実行、ユーザーと権限の管理などの管理タスクを実行できます。
- 多言語サポート。
- CSVおよびSQLからデータをインポートします。
- 接続、プロセス、CPU/メモリ使用量などのMySQLサーバーアクティビティを監視するためのライブチャートを提供します。
- データベースまたはそのサブセットでグローバルに検索します。
- シンプルで使いやすいWebインターフェイス。
- データをCSV、SQL、XML、PDF、Word、Excel、LaTeXなどのさまざまな形式にエクスポートします。
このチュートリアルでは、Ubuntu18.04サーバーにphpMyAdminをインストールして保護する方法を説明します。
- Ubuntu18.04を実行しているサーバー。
- sudo権限を持つroot以外のユーザー。
phpMyAdminをインストール
開始する前に、ApacheとMySQLをサーバーにインストールする必要があります。次のコマンドでインストールできます:
sudo apt-get install apache2 mysql-server -y
デフォルトでは、phpMyAdminはUbuntu18.04のデフォルトリポジトリでは使用できません。そのため、サードパーティのPHPリポジトリをシステムに追加する必要があります。
次のコマンドを実行するだけで追加できます:
sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
リポジトリが追加されたら、次のコマンドを実行してphpMyAdminをインストールします。
sudo apt-get install phpmyadmin php-mbstring php-gettext -y
インストール中に、以下に示すようにWebサーバーを選択するように求められます。
Apacheを選択し、 OKをクリックします ボタン。次のページにリダイレクトされます:
次に、はいをクリックします ボタン。次のページが表示されます:
ここで、phpMyAdminのMySQLアプリケーションのパスワードを入力し、 OKをクリックします。 ボタン。
phpMyAdminをインストールしたら、次のコマンドでmbstringPHP拡張機能を有効にします。
sudo phpenmod mbstring
次に、Apacheサービスを再起動して、変更を適用します。
sudo systemctl restart apache2
phpMyAdminは、インストール時に設定した管理者パスワードを使用して、phpmyadminというデータベースユーザーを自動的に作成しました。ただし、phpMyAdminWebインターフェイスを介してデータベースを管理するための別のユーザーを作成することをお勧めします。 MariaDBの最新バージョンでは、ルートMySQLユーザーはデフォルトでauth_socketプラグインを使用して認証するように設定されています。したがって、root MySQLユーザーとしてphpMyAdminにログインする場合は、認証方法をauth_socketからmysql_native_passwordに切り替える必要があります。
まず、次のコマンドを使用してMySQLシェルにログインします。
sudo mysql
次に、次のコマンドを使用してMySQLユーザーの認証方法を確認します。
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
出力:
+------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *AC18DF5CAE34BF4796EF975702F038A566B48B42 | mysql_native_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 4 rows in set (0.01 sec)
上記の出力では、rootユーザーがauth_socketプラグインを使用していることがわかります。
次のコマンドを実行して、パスワードで認証するようにrootアカウントを構成できます。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
次に、次のコマンドを使用して特権をフラッシュします。
mysql> FLUSH PRIVILEGES;
次に、次のコマンドを実行して認証方法を確認します。
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
出力:
+------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 | mysql_native_password | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *AC18DF5CAE34BF4796EF975702F038A566B48B42 | mysql_native_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 4 rows in set (0.01 sec)
次に、phpmyAdminuserという名前の別のユーザーを作成してphpMyAdminに接続します。
まず、MySQLシェルにログインします:
mysql -u root -p
ルートパスワードを入力し、次のコマンドでユーザーを作成します。
MariaDB [(none)]> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'password';
次に、次のコマンドを使用してphpmyadminuserに適切な権限を付与します。
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;
最後に、次のコマンドを使用してMySQLシェルを終了します。
MariaDB [(none)]> exit;
次に、Webブラウザーを開き、URL http:// your-server-ip/phpmyadminを入力します。次のページにリダイレクトされます:
ここに、ユーザー名とパスワードを入力します。次に、移動をクリックします ボタン。次のページにPhpMyAdminダッシュボードが表示されます。
これでphpMyAdminがインストールおよび構成されました。ただし、不正アクセスを防ぐためにphpMyAdminインスタンスを保護することをお勧めします。Apacheの組み込みの.htaccess認証および承認機能を使用して、phpMyAdminを保護できます。
これを行うには、最初にphpmyadmin.confファイルを編集して.htaccessファイルのオーバーライドの使用を有効にします。
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
次の変更を行います:
<Directory /usr/share/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php AllowOverride All
ファイルを保存して閉じます。次に、Apacheサービスを再起動して、変更を適用します。
sudo systemctl restart apache2
次に、phpmyadminディレクトリ内に.htaccessファイルを作成します。
sudo nano /usr/share/phpmyadmin/.htaccess
次の行を追加します:
AuthType Basic AuthName "Restricted Files" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user
ファイルを保存して閉じます。次に、htpasswdユーティリティを使用してadminという名前のユーザーを作成します。
sudo htpasswd -c /etc/phpmyadmin/.htpasswd admin
出力:
New password: Re-type new password: Adding password for user admin
これで、phpMyAdminインスタンスが追加の認証レイヤーで保護されました。
次に、Webブラウザーを開き、URL http:// your-server-ip/phpmyadminを入力します。以下に示すように、構成したばかりの追加のアカウント名とパスワードにリダイレクトされます。
次に、ユーザー名とパスワードを入力して、ログをクリックします。 で ボタン。通常のphpMyAdmin認証ページにリダイレクトされます。
- phpMyAdmin