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/tmp

phpMyAdmin用の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 --reload

phpMyAdminはこれでインストールされ、設定されました。次は、動作しているかどうかを確認する時です。

ウェブブラウザを開き、URL http://your-server-ip/phpmyadmin を入力します。次のページにリダイレクトされます:

PHPMyAdmin Login

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 httpd

phpMyAdminにアクセス

これで、phpMyAdminインスタンスは追加のセキュリティレイヤーで保護されています。ウェブブラウザを開き、URL http://your-server-ip/phpmyadmin を入力します。以前に作成したユーザーのログイン資格情報を入力するよう求められます:

Secured phpMyAdmin

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

Login as root user to phpMyAdmin

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

phpMyAdmin database dashboard

結論

おめでとうございます!CentOS 8サーバーにphpMyAdminを正常にインストールしてセキュリティを強化しました。これで、データベース、ユーザー、テーブルを作成し、ウェブベースのインターフェースから管理できます。質問があればお気軽にお尋ねください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。