ウェブサイト検索

RHEL システムで Apache を使用して PhpMyAdmin をインストールする方法


この記事では、CentOS ストリームなどの RHEL ベースのディストリビューション上の Apache ウェブサーバーに最新バージョンの PhpMyAdmin をインストールする手順を段階的に説明します。 >、FedoraRocky LinuxAlma Linux

PhpMyAdminとは何ですか?

PhpMyAdmin は、人気のある強力な Web ベースのデータベース管理ツールであり、最新バージョンを使用すると、最新の機能とセキュリティ強化機能に確実にアクセスできます。このガイドを終えると、PhpMyAdmin を使用して MySQL または MariaDB データベースを簡単に管理できるようになります。

前提条件

始める前に、以下のものがあることを確認してください。

  • RHEL、CentOS Stream、Fedora、Rocky Linux、または AlmaLinux システムへのアクセス。
  • root ユーザーとしてログインできるか、ソフトウェアをインストールするための sudo 権限があることを確認してください。
  • 既存のLAMP スタック。Apache、MySQL/MariaDB、PHP が含まれます。 LAMP がない場合は、次の手順に従ってセットアップできます。

ステップ 1: システムを更新する

ソフトウェアをインストールする前に、次の dnf コマンドを実行してシステムが最新であることを確認することが重要です。

sudo dnf update

これにより、システム上のすべてのパッケージが最新バージョンに更新されます。

ステップ 2: Apache Web サーバーをインストールする

PhpMyAdmin は Web ベースのツールであり、これを使用するには、次のコマンドを使用して Apache Web サーバーをインストールする必要があります。

sudo dnf install httpd

インストールしたら、Apache サービスを開始し、起動時に開始できるようにします。

sudo systemctl start httpd
sudo systemctl enable httpd

ステップ 3: MariaDB または MySQL をインストールする

データベース サーバーも必要になります。 MariaDB または MySQL のどちらをインストールするかを選択できますが、この例では MariaDB を使用します。

sudo dnf install mariadb-server

インストールしたら、MariaDB サービスを開始し、起動時に開始できるようにします。

sudo systemctl start mariadb
sudo systemctl enable mariadb

次に、スクリプトを実行して MariaDB インストールを保護します。これにより、root ユーザーのパスワードの入力、リモート root ログインの禁止、匿名ユーザーの削除が求められます。また、デフォルトでは匿名ユーザーがアクセスできるテスト データベースも削除されます。

sudo mysql_secure_installation

ステップ 4: PHP をインストールする

PhpMyAdminPHP で構築されているため、次のコマンドを使用して PHP と必要な拡張機能をインストールする必要があります。

sudo dnf install php php-mysqlnd php-json php-mbstring

ステップ 5: PhpMyAdmin をインストールする

次に、図に示すように、Web サーバーのドキュメント ルート ディレクトリ /var/www/html に移動して、Linux システムへの PhpMyAdmin のインストールを進めましょう。

cd /var/www/html

次に、次の wget コマンドを使用して、PhpMyAdmin の最新バージョンをダウンロードします。

sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

ダウンロードしたら、ダウンロードしたアーカイブを解凍し、便宜上ディレクトリの名前を変更します。

sudo tar -xvzf phpMyAdmin-latest-all-languages.tar.gz
sudo mv phpMyAdmin-*/ phpmyadmin

PhpMyAdminの設定ファイルを作成します。

sudo cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php

構成ファイルを編集します。

sudo nano /var/www/html/phpmyadmin/config.inc.php

次の行を見つけて、独自の blowfish_secret を設定します。

$cfg['blowfish_secret'] = 'your_secret';

ファイルを保存して終了します。

ステップ 6: firewalld で Apache ポートを開く

デフォルトでは、Apache は通常、HTTPHTTPS にポート 80443 を使用します。それぞれ。 Apache ポートを開いてサーバー上の PhpMyAdmin へのアクセスを許可するには、次のコマンドを実行します。

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload

これらのコマンドは、指定したポートでの受信トラフィックを許可するルールを追加し、ファイアウォールをリロードして変更を適用します。

ステップ 7: Apache Web サーバーを再起動する

最後に、Apache を再起動して変更を適用します。

sudo systemctl restart httpd

ステップ 8: PhpMyAdmin にアクセスする

これで、サーバーの IP アドレスまたはドメイン名に移動し、その後に URL で「/phpmyadmin」を追加することで、Web ブラウザを通じて PhpMyAdmin にアクセスできるようになります。

http://your_server_ip/phpmyadmin

MySQL または MariaDB の資格情報を使用してログインします。

ステップ 9: PhpMyAdmin で外部アクセスを許可する

PhpMyAdmin 構成ファイルを開きます。

sudo vi /etc/httpd/conf/httpd.conf

セクション、または PhpMyAdmin が設定されているセクションを見つけて、許可するように Require ディレクティブを更新します。 PhpMyAdmin にアクセスするためのすべての IP アドレス。

<Directory "/var/www/html/phpmyadmin">
    ...
    Require all granted
    ...
</Directory>

上記の設定では、任意の IP アドレスからのアクセスが許可されますが、特定の IP へのアクセスを制限したい場合は、Require all allowedRequire ip your_ip に置き換えます。

Apache を再起動して変更を適用します。

sudo systemctl restart httpd

これで、サーバーの IP アドレスまたはドメインを使用して外部から PhpMyAdmin にアクセスできるようになります。

http://your_server_ip/phpmyadmin

外部から PhpMyAdmin へのアクセスを開くと、セキュリティ リスクが生じる可能性があることに注意してください。強力な認証メカニズムが導入されていることを確認し、 暗号化通信にHTTPS の使用を検討してください。さらに、可能であればアクセスを信頼できる IP アドレスのみに制限するか、安全な PhpMyAdmin ログイン URL に制限します。

phpMyAdminのログインURLを変更する

phpMyAdmin のデフォルトのログイン URL は予測可能であり、脆弱性を悪用しようとする悪意のある攻撃者の標的となることがよくあります。ログイン URL を変更すると、セキュリティ層が追加され、権限のないユーザーがデータベース管理インターフェイスにアクセスすることがより困難になります。

これを行うには、/etc/httpd/conf.d/phpMyAdmin.conf 構成ファイルを作成します。

vi /etc/httpd/conf.d/phpMyAdmin.conf

次に、以下の設定を追加します。

#Alias /phpMyAdmin /var/www/html/phpmyadmin
Alias /my /var/www/html/phpmyadmin

<Directory /var/www/htm/lphpmyadmin>
    AddDefaultCharset UTF-8

    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
            # Additional IP or hostname-based access control can be added here
        </RequireAny>
    </IfModule>

    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from All
        Allow from 127.0.0.1
        Allow from ::1
        # Additional IP or hostname-based access control can be added here
    </IfModule>

</Directory>

/my を希望のカスタム ログイン URL に置き換えます。変更を保存し、テキスト エディタを終了します。

構成ファイルに変更を加えた後、Apache を再起動して変更を適用します。

systemctl restart httpd

Web ブラウザを開き、新しい phpMyAdmin ログイン URL に移動します。

http://yourdomain.com/my/

phpMyAdmin の SSL のセットアップ

Apache Web サーバーと phpMyAdmin の間の通信を保護することは、ログイン認証情報やデータベース コンテンツなどの機密情報を保護するために重要です。これを実現する効果的な方法の 1 つは、Apache Web サーバー上の phpMyAdminSSL (Secure Socket Layer) を構成することです。

これを行うには、まずサーバーにmod_ssl モジュールをインストールします。

yum install httpd mod_ssl openssl

次に、証明書を保存するディレクトリを作成し、図に示すように自己署名 SSL 証明書と秘密キーを生成します。

mkdir /etc/httpd/ssl 
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

SSL 証明書とキーを作成した後、Apache SSL 構成ファイルを開きます。

vi /etc/httpd/conf.d/ssl.conf

次に、構成ファイルに次の行を追加します。

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

変更を保存し、Apache Web サーバーを再起動します。

systemctl restart httpd

次に、phpMyAdmin 構成ファイルを開きます。

vi /var/www/html/phpmyadmin/config.inc.php

次の行を追加して、phpMyAdmin に SSL を強制します。

$cfg['ForceSSL'] = true;

変更を保存し、テキスト エディタを終了します。

最後に、Web ブラウザを開いて次の URL に移動し、安全な SSL 接続経由で phpMyAdmin にアクセスします。

https://yourdomain.com/my/

安全でない接続を示すメッセージは、単に自己署名証明書の使用が原因であることに注意してください。続行するには、「詳細」をクリックしてセキュリティ例外を承認します。

結論

おめでとう! RHEL、CentOS Stream、Rocky Linux、または AlmaLinux システムに Apache を使用して PhpMyAdmin が正常にインストールされました。この Web ベースのツールを使用すると、データベースの管理が簡素化され、データベースの作成、クエリ、データ管理などのタスクが簡単になります。