phpMyAdmin · 2 min read · Nov 06, 2025
CentOS 8にphpMyAdminをインストールしてセキュリティを強化する

phpMyAdminは、ウェブベースのインターフェースを介してMySQLおよびMariaDBサーバーを管理するための無料でオープンソースのツールです。phpMyAdminを使用すると、データベースやユーザーを作成および管理し、SQLステートメントを実行し、データをインポートおよびエクスポートし、テーブル、カラム、インデックス、権限などのデータベース活動を行うことができます。phpMyAdminは、特にウェブホスティングサービスにおいて、最も人気があり広く使用されている管理ツールの1つです。
機能
シンプルでユーザーフレンドリーなウェブインターフェースを提供します。
CSVおよびSQLからデータをインポートします。
データベース、テーブル、フィールド、インデックスの作成、コピー、削除、名前変更、変更を含むほとんどのMySQL機能をサポートします。
PDF、CSV、SQL、XMLなどのさまざまな形式にデータをエクスポートできます。
複数のサーバーを管理します。
クエリ例(QBE)を使用して複雑なクエリを作成します。
このチュートリアルでは、CentOS 8サーバーにphpMyAdminをインストールしてセキュリティを強化する方法を示します。
要件
CentOS 8を実行しているサーバー。
サーバーにルートパスワードが設定されています。
LAMPサーバーのインストール
まず、Apache、MariaDB、PHPおよびその他のPHPライブラリをサーバーにインストールする必要があります。次のコマンドでそれらをすべてインストールできます:
dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzipすべてのパッケージがインストールされたら、ApacheおよびMariaDBサービスを開始し、次のコマンドでシステム再起動後に自動的に開始するように設定します:
systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb完了したら、次のステップに進むことができます。
MariaDBの設定
デフォルトでは、MariaDBはセキュリティが設定されていません。したがって、最初にセキュリティを強化する必要があります。mysql_secure_installationスクリプトを実行することでこれを行うことができます:
mysql_secure_installation以下のようにすべての質問に答えてください:
Set root password? [Y/n] Y
New password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y完了すると、以下の出力が表示されるはずです:
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!この時点で、MariaDBのインストールはセキュリティが強化されています。
phpMyAdminのインストール
デフォルトでは、phpMyAdminはCentOS 8のデフォルトリポジトリにはありません。したがって、公式ウェブサイトからphpMyAdminの最新バージョンをダウンロードする必要があります。次のコマンドでダウンロードできます:
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.zipダウンロードが完了したら、次のコマンドでダウンロードしたファイルを解凍します:
unzip phpMyAdmin-4.9.2-all-languages.zip次に、抽出した内容を/usr/shareディレクトリに移動します:
mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadmin次に、ディレクトリを/usr/share/phpmyadminに変更し、config.sample.inc.phpファイルの名前を変更します:
cd /usr/share/phpmyadmin
mv config.sample.inc.php config.inc.php次に、お好みのテキストエディタでファイルを開きます:
nano config.inc.php以下の行を変更します:
$cfg['blowfish_secret'] = 'your-secret-password';完了したら、ファイルを保存して閉じます。次に、以下のコマンドでcreate_tables.sqlをインポートします:
mysql < /usr/share/phpmyadmin/sql/create_tables.sql -u root -pテーブルをインポートするためにプロンプトが表示されたら、ルートパスワードを入力します。
次に、phpmyadmin用のtmpディレクトリを作成し、適切な権限を与えます:
mkdir /usr/share/phpmyadmin/tmp
chown -R apache:apache /usr/share/phpmyadmin
chmod 777 /usr/share/phpmyadmin/tmpphpMyAdmin用のApacheの設定
次に、phpMyAdmin用のApache仮想ホスト設定ファイルを作成する必要があります。次のコマンドで作成できます:
nano /etc/httpd/conf.d/phpmyadmin.conf以下の行を追加します:
Alias /phpmyadmin /usr/share/phpmyadmin
AddDefaultCharset UTF-8
# Apache 2.4
Require all granted
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
# Apache 2.4
Require all granted
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
完了したら、ファイルを保存して閉じます。次に、以下のコマンドでApacheサービスを再起動します:
systemctl restart httpd以下のコマンドでApacheのステータスを確認できます:
systemctl status httpd以下の出力が表示されるはずです:
? httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
??php-fpm.conf
Active: active (running) since Wed 2019-12-18 01:07:52 EST; 6s ago
Docs: man:httpd.service(8)
Main PID: 5636 (httpd)
Status: "Started, listening on: port 80"
Tasks: 213 (limit: 25044)
Memory: 28.7M
CGroup: /system.slice/httpd.service
??5636 /usr/sbin/httpd -DFOREGROUND
??5639 /usr/sbin/httpd -DFOREGROUND
??5640 /usr/sbin/httpd -DFOREGROUND
??5641 /usr/sbin/httpd -DFOREGROUND
??5642 /usr/sbin/httpd -DFOREGROUND
Dec 18 01:07:52 centos8 systemd[1]: Stopped The Apache HTTP Server.
Dec 18 01:07:52 centos8 systemd[1]: Starting The Apache HTTP Server...
Dec 18 01:07:52 centos8 httpd[5636]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:d0>
Dec 18 01:07:52 centos8 httpd[5636]: Server configured, listening on: port 80
Dec 18 01:07:52 centos8 systemd[1]: Started The Apache HTTP Server.SELinuxとファイアウォールの設定
デフォルトでは、SELinuxはCentOS 8で有効になっています。したがって、phpMyAdminが正しく動作するようにSELinuxを設定する必要があります。
まず、次のコマンドでSELinux環境を管理するためのpolicycoreutils-python-utilsパッケージをインストールします:
dnf install policycoreutils-python-utils次に、次のコマンドで/usr/share/phpmyadminディレクトリへのアクセスを有効にします:
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/phpmyadmin/'
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"次に、以下のコマンドを実行してphpmyadminディレクトリ内のすべてのファイルを再帰的に処理します:
restorecon -Rv '/usr/share/phpmyadmin/'次に、外部ネットワークからHTTPサービスを許可するファイアウォールルールを作成する必要があります。次のコマンドで許可できます:
firewall-cmd --permanent --add-service=http
firewall-cmd --reloadphpMyAdminはこれでインストールされ、設定されました。次は、動作しているかどうかを確認する時です。
ウェブブラウザを開き、URL http://your-server-ip/phpmyadmin を入力します。次のページにリダイレクトされます:

phpMyAdminのセキュリティ強化
この時点で、phpMyAdminインスタンスは正常に機能しています。ただし、外部からのphpMyAdminインスタンスを保護することは重要な作業です。このセクションでは、phpMyAdminインスタンスを保護する方法を示します。
特定のIPからのphpMyAdminの許可
まず、phpMyAdminを自宅の接続のIPアドレスからのみアクセス可能にする必要があります。
/etc/httpd/conf.d/phpmyadmin.confファイルを編集して設定できます:
nano /etc/httpd/conf.d/phpmyadmin.conf以下の行を見つけます:
Require all granted
そして、以下のように置き換えます:
Require ip your-home--connection-ip-address
Require ip ::1
完了したら、ファイルを保存して閉じます。
追加の認証レイヤーの設定
phpmyadminディレクトリをパスワードで保護するために、基本認証を設定するのは良いアイデアです。
これを行うには、以下のようにhtpasswdツールを使用して新しい認証ファイルを作成します:
mkdir /etc/phpmyadmin
htpasswd -c /etc/phpmyadmin/.htpasswd admin以下のように管理者パスワードを提供するよう求められます:
New password:
Re-type new password:
Adding password for user admin次に、Apacheに.htpasswdファイルを使用するように設定する必要があります。/etc/httpd/conf.d/phpmyadmin.confファイルを編集することでこれを行えます。
nano /etc/httpd/conf.d/phpmyadmin.conf「AddDefaultCharset UTF-8」の行の下に以下の行を追加します:
Options +FollowSymLinks +Multiviews +Indexes
AllowOverride None
AuthType basic
AuthName "Authentication Required"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-userファイルを保存し、変更を適用するためにApacheサービスを再起動します:
systemctl restart httpdphpMyAdminにアクセス
これで、phpMyAdminインスタンスは追加のセキュリティレイヤーで保護されています。ウェブブラウザを開き、URL http://your-server-ip/phpmyadmin を入力します。以前に作成したユーザーのログイン資格情報を入力するよう求められます:

管理者のユーザー名とパスワードを入力し、OKボタンをクリックします。phpMyAdminのログインページにリダイレクトされます:

MySQL管理ユーザーのログイン資格情報を提供し、Goボタンをクリックします。以下のページが表示されるはずです:

結論
おめでとうございます!CentOS 8サーバーにphpMyAdminを正常にインストールしてセキュリティを強化しました。これで、データベース、ユーザー、テーブルを作成し、ウェブベースのインターフェースから管理できます。質問があればお気軽にお尋ねください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。