phpMyAdminは、WebインターフェイスからMySQLおよびMariaDBデータベースを管理するために使用される無料のオープンソースのWebベースのアプリケーションです。コマンドラインインターフェイスからデータベースを作成および管理することは、初心者ユーザーにとっては非常に困難です。 phpMyAdminは、MySQLデータベース、ユーザーアカウント、および特権を管理し、SQLステートメントを実行し、Webブラウザーを介してデータをインポートおよびエクスポートするためのより簡単な方法を提供します。
この投稿では、Debian11にphpMyAdminデータベース管理ツールをインストールして保護する方法を紹介します。
- Debian11を実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
開始する前に、システムパッケージを最新バージョンに更新することをお勧めします。次のコマンドを使用して、すべてのパッケージを更新できます。
apt-get update -y
システムが更新されたら、次のステップに進むことができます。
LAMPサーバーをインストールする
phpMyAdminはPHPベースのアプリケーションであり、Webサーバー上で実行されます。そのため、サーバーにLAMPサーバーをインストールする必要があります。次のコマンドを使用してインストールできます:
apt-get install apache2 mariadb-server libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml php-mbstring php-zip php-gd unzip -y
すべてのパッケージがインストールされたら、次のステップに進むことができます。
phpMyAdminのインストールと構成
まず、次のコマンドを使用して、公式WebサイトからphpMyAdminの最新バージョンをダウンロードします。
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip
ダウンロードが完了したら、次のコマンドを使用してダウンロードしたファイルを解凍します。
phpMyAdmin-5.1.1-all-languages.zipを解凍
次に、次のコマンドを使用して、抽出したディレクトリを/ usr/shareに移動します。
mv phpMyAdmin-5.1.1-all-languages / usr / share / phpmyadmin
次に、次のコマンドを使用して必要なディレクトリを作成します。
mkdir -p / var / lib / phpmyadmin / tmp
次に、phpMyAdminディレクトリに適切な所有権を設定します。
chown -R www-data:www-data / var / lib / phpmyadmin
次に、phpMyAdminサンプル構成ファイルをコピーします。
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
次に、pwgenをインストールし、次のコマンドを使用してシークレットキーを生成します。
apt-get install pwgen -y
pwgen -s 32 1
出力:
pau9t1SG6lmaeCFxKqeeaY5N4erIa25K
次に、config.inc.phpファイルを編集して構成します。
nano /usr/share/phpmyadmin/config.inc.php
シークレットキーを定義し、次の行のコメントを解除します。
$ cfg ['blowfish_secret'] ='pau9t1SG6lmaeCFxKqeeaY5N4erIa25K'; / * COOKIE AUTHの場合は、これを入力する必要があります。 * / $ cfg ['Servers'] [$ i] ['controluser'] ='pma'; $ cfg ['Servers'] [$ i] ['controlpass'] ='password'; $ cfg ['Servers' ] [$ i] ['pmadb'] ='phpmyadmin'; $ cfg ['Servers'] [$ i] ['bookmarktable'] ='pma__bookmark'; $ cfg ['Servers'] [$ i] ['relation '] ='pma__relation'; $ cfg ['Servers'] [$ i] ['table_info'] ='pma__table_info'; $ cfg ['Servers'] [$ i] ['table_coords'] ='pma__table_coords'; $ cfg ['Servers'] [$ i] ['pdf_pages'] ='pma__pdf_pages'; $ cfg ['Servers'] [$ i] ['column_info'] ='pma__column_info'; $ cfg ['Servers'] [$ i] ['history'] ='pma__history'; $ cfg ['Servers'] [$ i] ['table_uiprefs'] ='pma__table_uiprefs'; $ cfg ['Servers'] [$ i] ['tracking'] ='pma__tracking'; $ cfg ['Servers'] [$ i] ['userconfig'] ='pma__userconfig'; $ cfg ['Servers'] [$ i] ['recent'] ='pma__recent'; $ cfg ['サーバー'][$ i] ['favorite'] ='pma__favorite'; $ cfg ['Servers'] [$ i] ['users'] ='pma__users'; $ cfg ['Servers'] [$ i] [ 'usergroups'] ='pma__usergroups'; $ cfg ['Servers'] [$ i] ['navigationhiding'] ='pma__navigationhiding'; $ cfg ['Servers'] [$ i] ['savedsearches'] ='pma__savedsearches'; $ cfg ['サーバー'][$ i] ['central_columns'] ='pma__central_columns'; $ cfg ['Servers'] [$ i] ['designer_settings'] ='pma__designer_settings'; $ cfg ['Servers'] [$ i] [ 'export_templates'] ='pma__export_templates'; $ cfg ['TempDir'] ='/ var / lib / phpmyadmin / tmp';
終了したら、ファイルを保存して閉じます。
phpMyAdmin管理者ユーザーを作成
phpMyAdminを介してデータベースを管理するための別のユーザーを作成することを常にお勧めします。
まず、次のコマンドを使用してphpMyAdminテーブルをMariaDBデータベースにインポートします。
mysql次に、次のコマンドを使用してMariaDBシェルに接続します。
mysql接続したら、次のコマンドを使用して、phpmyadminデータベースに必要なすべての権限を付与します。
MariaDB [(none)]> phpmyadmin。*でSELECT、INSERT、UPDATE、DELETEを付与します。* TO'pma' @'localhost' IDENTIFIED BY'password';次に、次のコマンドを使用して管理者ユーザーを作成します。
MariaDB [(none)]> CREATE USER myadmin;次に、次のコマンドを使用して、管理者ユーザーにすべての権限を付与します。
MariaDB [(none)]>すべての特権を*。*に付与して'myadmin'@'localhost'に'password'で識別します。次に、特権をフラッシュし、次のコマンドを使用してMariaDBシェルを終了します。
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;終了したら、次のステップに進むことができます。
phpMyAdmin用にApacheを構成する
次に、phpMyAdmin用のApache仮想ホスト構成ファイルを作成する必要があります。次のコマンドを使用して作成できます:
nano /etc/apache2/conf-available/phpmyadmin.conf次の行を追加します:
エイリアス/phpmyadmin/ usr / share / phpmyadminオプションSymLinksIfOwnerMatchDirectoryIndexindex.php #セットアップの承認AddType application / x-httpd-php .php SetHandler application / x-httpd-php php_valueinclude_path。 php_admin_value upload_tmp_dir / var / lib / phpmyadmin / tmp php_admin_value open_basedir / usr / share / phpmyadmin /:/ etc / phpmyadmin /:/ var / lib / phpmyadmin /:/ usr / share / php / php-gettext /:/ usr / share / php / php-php-gettext /:/ usr / share / javascript /:/ usr / share / php / tcpdf /:/ usr / share / doc / phpmyadmin /:/ usr / share / php / phpseclib / php_admin_value mbstring func_overload 0AddType application / x-httpd-php .php SetHandler application / x-httpd- php php_valueinclude_path。 php_admin_value upload_tmp_dir / var / lib / phpmyadmin / tmp php_admin_value open_basedir / usr / share / phpmyadmin /:/ etc / phpmyadmin /:/ var / lib / phpmyadmin /:/ usr / share / php / php-gettext /:/ usr / share / php / php-php-gettext /:/ usr / share / javascript /:/ usr / share / php / tcpdf /:/ usr / share / doc / phpmyadmin /:/ usr / share / php / phpseclib / php_admin_value mbstring func_overload 0#それを必要としないディレクトリへのWebアクセスを禁止する AuthType Basic AuthName "phpMyAdmin Setup" AuthUserFile / etc / phpmyadmin / htpasswd.setup 有効なユーザーを要求するすべてを拒否することを要求する <ディレクトリ/usr/ share / phpmyadmin/libraries>すべて拒否する必要があります<ディレクトリ/usr/ share / phpmyadmin / setup/lib>すべて拒否する必要があります終了したらファイルを保存して閉じ、次のコマンドでphpMyAdmin構成ファイルを有効にします。
a2enconf phpmyadmin.conf次に、Apacheサービスをリロードして、変更を適用します。
systemctl reload apache2次のコマンドを使用して、Apacheサービスのステータスを確認できます。
systemctl status apache2次の出力が表示されます。
? apache2.service-ロードされたApacheHTTPサーバー:ロードされました(/lib/systemd/system/apache2.service;有効;ベンダープリセット:有効)アクティブ:アクティブ(実行中)Tue 2021-08-17 10:16:28 UTC; 2秒前ドキュメント:https://httpd.apache.org/docs/2.4/プロセス:45027 ExecStart =/ usr / sbin / apachectl start(code =exited、status =0 / SUCCESS)メインPID:45031(apache2)タスク: 6(制限:2341)メモリ:14.6M CPU:89ms CGroup:/system.slice/apache2.service ?? 45031 / usr / sbin / apache2 -k start ?? 45032 / usr / sbin / apache2 -k start ?? 45033 / usr / sbin / apache2 -k start ?? 45034 / usr / sbin / apache2 -k start ?? 45035 / usr / sbin / apache2 -k start ?? 45036 / usr / sbin / apache2 -k startAug 17 10:16: 28 debian systemd [1]:ApacheHTTPサーバーを起動しています...phpMyAdminにアクセス
この時点で、phpMyAdminがインストールおよび構成されています。次に、Webブラウザーを開き、URL http:// your-server-ip / phpmyadminを使用してphpMyAdminにアクセスします。 。 phpMyAdminログインページが表示されます:
管理者のユーザー名とパスワードを入力し、[移動]をクリックします ボタン。次のページにphpMyAdminダッシュボードが表示されます。
安全なphpMyAdmin 二要素認証でphpMyAdminを保護することをお勧めします。これは、.htaccess認証および承認機能を使用して行うことができます。
まず、phpMyAdmin構成ファイルを編集します。
nano /etc/apache2/conf-available/phpmyadmin.conf次のサーバーブロックに「AllowOverrideAll」行を追加します。
オプションFollowSymLinksDirectoryIndexindex.php AllowOverride All 終了したらファイルを保存して閉じ、Apacheサービスを再起動します。
systemctl restart apache2次に、.htaccessファイルを作成し、Apache認証タイプを定義します。
nano /usr/share/phpmyadmin/.htaccess次の行を追加します:
AuthType BasicAuthName "Restricted Files" AuthUserFile /usr/share/phpmyadmin/.htpasswdRequire valid-userファイルを保存して閉じてから、次のコマンドでユーザーを作成します。
htpasswd -c /usr/share/phpmyadmin/.htpasswd secureuser以下に示すように、パスワードを設定するように求められます。
新しいパスワード:新しいパスワードを再入力:ユーザーsecureuserのパスワードを追加phpMyAdminを確認
この時点で、phpMyAdminは追加の認証で保護されています。確認するには、ウェブブラウザを開き、URL http:// your-server-ip / phpmyadminを使用してphpMyAdminにアクセスします。 。以下に示すように、追加のユーザー名とパスワードの入力を求められます。
ユーザー名とパスワードを入力すると、通常のphpMyAdminログインページにリダイレクトされます。
結論 おめでとう!これで、Debian 11にphpMyAdminが正常にインストールされ、保護されました。これで、phpMyAdminを調べて、Webブラウザからデータベースの管理を開始できます。
Debian