RHELシステムでApacheにPhpMyAdminをインストールする方法

この記事では、PhpMyAdminの最新バージョンをRHELベースのディストリビューションCentOS StreamFedoraRocky LinuxAlma Linuxなど)にApacheウェブサーバーとともにインストールする手順を段階的にご紹介します。

PhpMyAdminとは何ですか?

PhpMyAdminは人気があり強力なウェブベースのデータベース管理ツールであり、最新バージョンを使用することで最新の機能やセキュリティの向上にアクセスできます。このガイドの終わりまでに、MySQLまたはMariaDBデータベースを管理するためにPhpMyAdminを簡単に使用できるようになります。

前提条件

始める前に、次のことを確認してください。

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

ステップ1:システムの更新

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

sudo dnf update
Update Linux System

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

ステップ2:Apache Webサーバーのインストール

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

sudo dnf install httpd
Install Apache in Linux

インストール後、Apacheサービスを起動し、ブート時に自動起動するように設定します。

sudo systemctl start httpd
sudo systemctl enable httpd

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

また、データベースサーバーが必要です。MariaDBまたはMySQLのいずれかをインストールできますが、この例ではMariaDBを使用します。

sudo dnf install mariadb-server
Install MariaDB in Linux

インストール後、MariaDBサービスを起動し、ブート時に自動起動するように設定します。

sudo systemctl start mariadb
sudo systemctl enable mariadb

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

sudo mysql_secure_installation
Secure MariaDB in Linux

ステップ4: PHPのインストール

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

sudo dnf install php php-mysqlnd php-json php-mbstring
Install PHP in Linux

ステップ5: PhpMyAdminのインストール

それでは、PhpMyAdminをLinuxシステムにインストールする手順に進みましょう。Webサーバーのドキュメントルートディレクトリ/var/www/htmlに移動してください。

cd /var/www/html

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

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は通常、80ポートと443ポートをそれぞれHTTPHTTPSに使用しています。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にアクセス

これで、ウェブブラウザーを介してPhpMyAdminにアクセスできるようになります。サーバーのIPアドレスまたはドメイン名に「/phpmyadmin」を追加してURLをナビゲートします:

http://your_server_ip/phpmyadmin

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

PHPMyAdmin Login
PHPMyAdmin Dashboard

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

PhpMyAdminの設定ファイルを開きます。

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

あなたのPhpMyAdminが設定されているセクションである<Directory "/var/www/html">セクションを見つけて、RequireディレクティブをPhpMyAdminへのアクセスを許可するように更新します。

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

上記の設定では、どのIPアドレスからもアクセスが許可されていますが、特定のIPアドレスにアクセスを制限したい場合は、Require all grantedRequire 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

ウェブブラウザを開いて、新しいphpMyAdminログインURLに移動してください。

http://yourdomain.com/my/
phpMyAdmin Login URL

phpMyAdminのSSL設定

ApacheウェブサーバーとphpMyAdminの間の通信を保護することは、ログイン資格情報やデータベース内容などの機密情報を保護するために重要です。これを実現する効果的な方法の1つは、Apacheウェブサーバー上のSSLSecure Socket Layer)をphpMyAdminに設定することです。

そのためには、まずサーバー上の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
Create SSL Certificate for PhpMyAdmin

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ウェブサーバーを再起動します。

systemctl restart httpd

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

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

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

$cfg['ForceSSL'] = true;

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

最後に、ウェブブラウザを開いて、SSL経由でphpMyAdminにアクセスするための次のURLに移動してください。

https://yourdomain.com/my/

不安全な接続のメッセージが表示されることにご注意ください。これは、セルフサインされた証明書を使用しているためです。「詳細」をクリックし、セキュリティ例外を確認してください。

SSL Warning
Secure phpMyAdmin Login
結論

おめでとうございます!あなたはRHEL、CentOS Stream、Rocky Linux、またはAlmaLinuxシステムでPhpMyAdminをApacheと共に無事にインストールしました。このWebベースのツールは、データベースの管理を簡素化し、データベースの作成、クエリ、データ管理などのタスクを簡単に行えるようにしています。

Source:
https://www.tecmint.com/install-phpmyadmin-rhel-centos-fedora-linux/