phpMyAdmin · 2 min read · Oct 22, 2025
Debian 12に最新のphpMyAdminバージョンをインストールしてセキュリティを強化する方法

phpMyAdminは、MySQLおよびMariaDBデータベースを管理するための無料のウェブベースの管理ツールで、Debian Linuxシステムで広く利用されています。データベースと対話するためのユーザーフレンドリーなインターフェースを提供し、ユーザーはSQLクエリを実行したり、データベーステーブルを管理したり、データをインポートおよびエクスポートしたり、コマンドラインを使用せずにさまざまなデータベース設定を構成したりできます。Debian Linuxでは、phpMyAdminはLAMP(Linux、Apache、MySQL/MariaDB、PHP)スタックと一緒にインストールされることが多く、管理者や開発者がデータベース操作をより視覚的で整理された方法で処理できるようにします。
このチュートリアルでは、Debian 12にphpMyAdminデータベース管理ツールをインストールしてセキュリティを強化する方法を示します。
前提条件
Debian 12を実行しているサーバー。
サーバーにルートパスワードが設定されています。
始めに
始める前に、システムパッケージを最新バージョンに更新することをお勧めします。次のコマンドを使用してすべてのパッケージを更新できます:
apt update -yシステムが更新されたら、次のステップに進むことができます。
LAMPサーバーのインストール
phpMyAdminはウェブサーバー上で動作するPHPベースのアプリケーションです。したがって、サーバーにLAMPサーバーをインストールする必要があります。次のコマンドを使用してインストールできます:
apt 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のインストールと構成
まず、次のコマンドを使用して公式ウェブサイトからphpMyAdminの最新バージョンをダウンロードします:
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zipダウンロードが完了したら、次のコマンドを使用してダウンロードしたファイルを解凍します:
unzip phpMyAdmin-5.2.1-all-languages.zip次に、抽出したディレクトリを次のコマンドで/usr/shareに移動します:
mv phpMyAdmin-5.2.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['Servers'][$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['Servers'][$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 < /usr/share/phpmyadmin/sql/create_tables.sql次に、次のコマンドを使用してMariaDBシェルに接続します:
mysql接続したら、次のコマンドを使用してphpmyadminデータベースに必要なすべての権限を付与します:
MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'password';次に、次のコマンドを使用して管理ユーザーを作成します:
MariaDB [(none)]> CREATE USER myadmin;次に、次のコマンドを使用して管理ユーザーにすべての権限を付与します:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'myadmin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;次に、権限をフラッシュし、次のコマンドを使用してMariaDBシェルから退出します:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;完了したら、次のステップに進むことができます。
phpMyAdminのためのApacheの構成
次に、phpMyAdminのためのApache仮想ホスト構成ファイルを作成する必要があります。次のコマンドを使用して作成できます:
nano /etc/apache2/conf-available/phpmyadmin.conf次の行を追加します:
Alias /phpmyadmin /usr/share/phpmyadmin
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
AddType application/x-httpd-php .php
SetHandler application/x-httpd-php
php_value include_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
AddType application/x-httpd-php .php
SetHandler application/x-httpd-php
php_value include_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
# セットアップのための認証
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
Require valid-user
# 不要なディレクトリへのウェブアクセスを禁止
Require all denied
Require all denied
Require all denied
完了したら、ファイルを保存して閉じ、次のコマンドを使用してphpMyAdmin構成ファイルを有効にします:
a2enconf phpmyadmin.conf次に、次のコマンドを使用してApacheサービスを再読み込みして変更を適用します:
systemctl reload apache2次のコマンドを使用してApacheサービスのステータスを確認できます:
systemctl status apache2次の出力が表示されるはずです:
? apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2024-08-25 11:28:21 UTC; 5s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 23021 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 23031 (apache2)
Tasks: 6 (limit: 2341)
Memory: 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 start
Sun 25 11:28:21 debian systemd[1]: Starting The Apache HTTP Server...
phpMyAdminにアクセス
この時点で、phpMyAdminはインストールされ、構成されています。今、ウェブブラウザを開き、URL http://your-server-ip/phpmyadminを使用してphpMyAdminにアクセスします。phpMyAdminのログインページが表示されるはずです:

管理者のユーザー名とパスワードを入力し、Goボタンをクリックします。次のページにphpMyAdminのダッシュボードが表示されるはずです:

phpMyAdminのセキュリティ強化
phpMyAdminを二要素認証で保護することは良い考えです。これを行うには、.htaccess認証および承認機能を使用できます。
まず、phpMyAdmin構成ファイルを編集します:
nano /etc/apache2/conf-available/phpmyadmin.conf次のサーバーブロックに「AllowOverride All」行を追加します:
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
完了したら、ファイルを保存して閉じ、次のコマンドを使用してApacheサービスを再起動します:
systemctl restart apache2次に、.htaccessファイルを作成し、Apache認証タイプを定義します:
nano /usr/share/phpmyadmin/.htaccess次の行を追加します:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/share/phpmyadmin/.htpasswd
Require valid-user
ファイルを保存して閉じたら、次のコマンドを使用してユーザーを作成します:
htpasswd -c /usr/share/phpmyadmin/.htpasswd secureuser次のようにパスワードを設定するように求められます:
New password:
Re-type new password:
Adding password for user secureuser
phpMyAdminの確認
この時点で、phpMyAdminは追加の認証で保護されています。確認するために、ウェブブラウザを開き、URL http://your-server-ip/phpmyadminを使用してphpMyAdminにアクセスします。次のように追加のユーザー名とパスワードを求められます:

ユーザー名とパスワードを入力すると、通常のphpMyAdminログインページにリダイレクトされます。
結論
おめでとうございます!Debian 12にphpMyAdminを正常にインストールしてセキュリティを強化しました。これで、phpMyAdminを探索し、ウェブブラウザからデータベースを管理できます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。