ウェブサイト検索

Alma Linux 8にphpMyAdminをインストールして保護する方法


phpMyAdmin は、MySQL および MariaDB 用の無料のオープンソース データベース管理アプリケーションです。 Web ベースのインターフェイスからデータベース関連のさまざまなタスクを管理、実行し、クエリを実行できます。 PHP で書かれており、Web ブラウザ経由でデータベースを管理するための堅牢で使いやすいインターフェイスを提供します。クロスプラットフォームであり、Windows、macOS、Linux、BSD などの多くのオペレーティング システムで実行できます。

このチュートリアルでは、Alma Linux 8にphpMyAdminをインストールする方法を学びます。

前提条件

  • Alma Linux 8を実行しているサーバー。
  • サーバー IP で指定された有効なドメイン名。
  • root パスワードはサーバー上で構成されます。

LEMPサーバーのインストール

まず、次のコマンドを使用して、Nginx Web サーバーと MariaDB データベース サーバーをインストールします。

dnf install nginx mariadb -y

次に、次のコマンドを使用して Remi PHP リポジトリをインストールします。

dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

次に、次のコマンドを使用して、デフォルトの PHP モジュールを無効にし、Remi PHP モジュールを有効にします。

dnf module -y reset php
dnf module install php:remi-7.4 -y

次に、次のコマンドを使用して、他の必要な拡張機能とともに PHP をインストールします。

dnf install php php-cli php-common php-fpm php-curl php-gd php-mbstring php-process php-snmp php-xml php-zip php-memcached php-mysqlnd php-json php-mbstring php-pdo php-pdo-dblib php-xml unzip wget -y

すべてのパッケージがインストールされたら、PHP-FPM 構成ファイルを編集します。

nano /etc/php-fpm.d/www.conf

ユーザーとグループを Apache から Nginx に変更します。

user = nginx
group = nginx

ファイルを保存して閉じ、次のコマンドを使用して Nginx、MariaDB、および PHP-FPM サービスを開始して有効にします。

systemctl start nginx php-fpm mariadb
systemctl enable nginx php-fpm mariadb

phpMyAdminのユーザーを作成する

次に、すべてのデータベース管理タスクを実行するために、phpMyAdmin 用に別のユーザーを作成することをお勧めします。まず、次のコマンドを実行して MariaDB を保護します。

mysql_secure_installation

このスクリプトは、次に示すように、root パスワードを設定し、匿名ユーザーを削除し、リモートでの root ログインを禁止し、テスト データベースを削除します。

Set root password? [Y/n] n
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

次に、次のコマンドを使用して MariaDB にログインします。

mysql

ログインしたら、次のコマンドを使用してデータベースとユーザーを作成します。

MariaDB [(none)]> CREATE DATABASE phpmyadmin CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'password';

次に、すべての権限を管理者ユーザーに付与します。

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%';

次に、次のコマンドを使用して権限をフラッシュし、MariaDB コンソールを終了します。

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Alma Linux 8にphpMyAdminをインストールする

次に、phpMyAdmin の最新バージョンを公式 Web サイトからダウンロードします。

wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.zip

ダウンロードが完了したら、次のコマンドを使用してダウンロードしたファイルを解凍します。

unzip phpMyAdmin-5.1.3-all-languages.zip

次に、抽出したディレクトリを Nginx Web ルート ディレクトリに移動します。

mv phpMyAdmin-5.1.3-all-languages /usr/share/nginx/phpmyadmin

次に、次のコマンドを使用してサンプル構成ファイルをコピーします。

cp /usr/share/nginx/phpmyadmin/config{.sample,}.inc.php

次に、次のコマンドを使用して構成ファイルを編集します。

nano /usr/share/nginx/phpmyadmin/config.inc.php

以下に示すようにシークレットを定義します。

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

ファイルを保存して閉じてから、phpMyAdmin ディレクトリの所有権を変更します。

chown -R nginx:nginx /usr/share/nginx/phpmyadmin
chown -R nginx:nginx /var/lib/php/session/

phpMyAdmin 用に Nginx を構成する

次に、phpMyAdmin 用の Nginx 仮想ホスト構成ファイルを作成する必要があります。次のコマンドで作成できます。

nano /etc/nginx/conf.d/phpmyadmin.conf

次の行を追加します。

server {
    listen       80;
    server_name  phpmyadmin.example.com;
    root         /usr/share/nginx/phpmyadmin;
    
    access_log /var/log/nginx/phpmyadmin_access.log;
    error_log /var/log/nginx/phpmyadmin_error.log;

    index   index.php;

    location / {
        try_files    $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
         try_files $uri =404;
         fastcgi_intercept_errors on;
         include        fastcgi_params;
         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
         fastcgi_pass unix:/run/php-fpm/www.sock;
     }
}

ファイルを保存して閉じ、次のコマンドを使用して Nginx に構文構成エラーがないか確認します。

nginx -t

次の出力が得られます。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

次に、Nginx サービスを再起動して変更を適用します。

systemctl restart nginx php-fpm

次のコマンドを使用して、Nginx のステータスを確認できるようになりました。

systemctl status nginx

次の出力が表示されるはずです。

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Fri 2022-04-15 10:06:39 UTC; 3s ago
  Process: 85445 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 85443 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 85442 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 85449 (nginx)
    Tasks: 2 (limit: 11412)
   Memory: 3.8M
   CGroup: /system.slice/nginx.service
           ??85449 nginx: master process /usr/sbin/nginx
           ??85450 nginx: worker process

Apr 15 10:06:39 linux systemd[1]: nginx.service: Succeeded.
Apr 15 10:06:39 linux systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Apr 15 10:06:39 linux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Apr 15 10:06:39 linux nginx[85443]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Apr 15 10:06:39 linux nginx[85443]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Apr 15 10:06:39 linux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Apr 15 10:06:39 linux systemd[1]: Started The nginx HTTP and reverse proxy server.

ファイアウォールの構成

次に、ファイアウォールを通過する HTTP サービスを許可する必要があります。次のコマンドを使用して許可できます。

firewall-cmd --permanent --zone public --add-service http

次に、ファイアウォールをリロードして変更を適用します。

firewall-cmd --reload

phpMyAdmin Web UIにアクセスする

次に、Web ブラウザを開き、URL http://phpmyadmin.example.com を使用して phpMyAdmin にアクセスします。 phpMyAdmin ログイン ページが表示されるはずです。

管理者のユーザー名とパスワードを入力し、[実行] ボタンをクリックします。ログインすると、phpMyAdmin ダッシュボードが表示されます。

[データベース] ボタンをクリックします。次のページが表示されるはずです。

作成するデータベース名を入力し、[作成] ボタンをクリックします。

削除するデータベースを選択し、「ドロップ」ボタンをクリックしてデータベースを削除します。次のページが表示されるはずです。

[OK] ボタンをクリックして確認し、選択したデータベースを削除します。

結論

おめでとう! Alma Linux 8 に Nginx を使用して phpMyAdmin を正常にインストールしました。これで、Web ブラウザ経由で MySQL データベースと MariaDB データベースを管理できるようになりました。ご質問がございましたらお気軽にお問い合わせください。

関連記事: