GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu 20.04 LTSにNginx(LEMP)を使用してphpMyAdminをインストールする方法

このチュートリアルでは、Ubuntu 20.04にNginx、MariaDB、PHP7.4(LEMP)を使用してphpMyAdminをインストールする方法を紹介します。 phpMyAdminは、PHPで記述された無料のオープンソースのWebベースのデータベース管理ツールです。ユーザーがMySQLまたはMariaDBデータベースを管理するためのグラフィカルなWebインターフェイスを提供します。

phpMyAdminを使用すると、管理者は次のことができます。

  • データベースとテーブルを参照します。
  • データベースの作成、コピー、名前変更、変更、および削除;
  • テーブルの作成、コピー、名前の変更、変更、削除;
  • テーブルのメンテナンスを実行します。
  • フィールドの追加、編集、削除;
  • 複数のクエリであっても、SQLステートメントを実行します。
  • インデックスの作成、変更、削除;
  • テキストファイルをテーブルにロードします;
  • テーブルまたはデータベースのダンプを作成して読み取ります。
  • データをSQL、CSV、XML、Word、Excel、PDF、LaTeX形式にエクスポートします。
  • 複数のサーバーを管理します。
  • MySQLユーザーと権限を管理します;
  • 構成のヒントを使用してサーバー設定とランタイム情報を確認します。
  • MyISAMテーブルの参照整合性を確認します;
  • 例によるクエリ(QBE)を使用して複雑なクエリを自動的に作成します
  • 必要なテーブルを接続する;
  • データベースレイアウトのPDFグラフィックを作成します;
  • データベースまたはそのサブセットをグローバルに検索します。
  • BLOBデータを画像やダウンロードリンクとして表示するなど、事前定義された一連の機能を使用して、保存されたデータを任意の形式に変換します。
  • InnoDBテーブルと外部キーを管理します;

前提条件

このチュートリアルに従うには、Ubuntu20.04OSをローカルコンピューターまたはリモートサーバーで実行する必要があります。

VPS(仮想プライベートサーバー)をお探しの場合は、この特別なリンクをクリックして、DigitalOceanで100ドルの無料クレジットを取得できます。 (新規ユーザーのみ)。すでにDigitalOceanユーザーである場合は、この特別なリンクをクリックして、Vultrで$ 50の無料クレジットを取得できます(新規ユーザーのみ)。

Ubuntu20.04にLEMPスタックがすでにインストールされていることを前提としています。そうでない場合は、次のチュートリアルを確認してください。

  • Ubuntu 20.04にLEMPスタック(Nginx、MariaDB、PHP7.4)をインストールする方法

それが邪魔にならないように、phpMyAdminのインストールを始めましょう。

ステップ1:Ubuntu20.04にphpMyAdminをダウンロードしてインストールする

phpMyAdminはUbuntu20.04ソフトウェアリポジトリに含まれているため、次のコマンドで簡単にインストールできます。

sudo apt update
sudo apt install phpmyadmin

上記のコマンドは、PHP7拡張機能を含むすべての必要な依存関係をインストールします。インストール中に、dbconfig-commonを使用するかどうかを尋ねられます データベースを構成します。 Tabキーを押して[はい]を選択します。

これにより、phpmyadminという名前の新しいデータベースユーザーも作成されます 。このユーザーにパスワードを与えます。

次に、構成するWebサーバーを選択するように求められます。 Nginxはリストにないため、Tabキーを押し、[OK]を押してこの手順をスキップします。

完了すると、phpmyadminという名前の新しいデータベースが作成されます が作成され、データベースユーザーphpmyadmin このデータベースを管理するために必要な権限があります。私のように興味があれば、MariaDBにログインして、phpmyadminの権限を確認できます。 ユーザーが許可されました。

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

sudo mysql -u root

次に、権限を確認します。

show grants for [email protected];

出力:

ご覧のとおり、ユーザーphpmyadmin データベースphpmyadminに対するすべての権限を持っています 。これで、次を実行して終了できます:

exit;

ステップ2:phpMyAdmin用のNginxサーバーブロックを作成する

phpMyAdmin Webインターフェイスにアクセスできるようにするには、次のコマンドを実行してNginxサーバーブロックを作成する必要があります。

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

サブドメインを介してphpMyAdminにアクセスできるように構成します。次のテキストをファイルに貼り付けます。 pma.example.comを置き換えます 実際のサブドメインを使用して、DNSAレコードを作成することを忘れないでください。

server {
  listen 80;
  listen [::]:80;
  server_name pma.example.com;
  root /usr/share/phpmyadmin/;
  index index.php index.html index.htm index.nginx-debian.html;

  access_log /var/log/nginx/phpmyadmin_access.log;
  error_log /var/log/nginx/phpmyadmin_error.log;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ ^/(doc|sql|setup)/ {
    deny all;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
    deny all;
  }
}

phpMyAdminファイルは/usr/share/phpmyadmin/にあります ディレクトリ。ファイルを保存して閉じます。次に、Nginx構成をテストします。

sudo nginx -t

テストが成功した場合は、変更を有効にするためにNginxをリロードします。

sudo systemctl reload nginx

これで、

を介してphpMyAdminWebインターフェイスにアクセスできるようになります。
pma.example.com

ステップ3:TLS証明書のインストール

phpMyadmin Webインターフェースを保護するために、無料のLet’sEncryptTLS証明書をインストールできます。以下のように、Ubuntu 20.04ソフトウェアリポジトリからLet’sEncryptクライアントをインストールします。

sudo apt install certbot python3-certbot-nginx

Python3-certbot-nginx Certbot用のNginxプラグインです。次のコマンドを実行して、TLS証明書を取得してインストールします。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d pma.example.com --email [email protected]

場所:

  • –nginx :Nginxオーセンティケーターとインストーラーを使用する
  • –同意する :Let'sEncryptの利用規約に同意する
  • –リダイレクト :301リダイレクトでHTTPSを適用します。
  • –hsts :すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。
  • –staple-ocsp :OCSPステープリングを有効にします。
  • –ステープルで留める必要があります :OCSPMustStaple拡張機能を証明書に追加します。
  • -d フラグの後には、コンマで区切られたドメイン名のリストが続きます。最大100個のドメイン名を追加できます。
  • –メール :登録と復旧の連絡に使用されるメール。

EFF(Electronic Frontier Foundation)からのメールを受信するかどうかを尋ねられます。 YまたはNを選択すると、TLS証明書が自動的に取得および構成されます。これは、以下のメッセージで示されます。

ステップ4:TLS証明書をテストする

ssllabs.comにアクセスして、TLS証明書と構成をテストします。 A +を取得する必要があります HSTSが有効になっているためです。

ステップ5:phpMyAdminログインエラーのトラブルシューティング

MariaDB rootアカウントでログインすると、次のエラーが表示される場合があります。

 #1698 - Access denied for user 'root '@'localhost'

および

mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'

ユーザーphpmyadminでログインした場合 、上記のエラーは表示されません。ただし、ユーザーphpmyadmin phpmyadminの管理にのみ使用できます データベース。エラーの原因は、デフォルトでは、MariDBrootユーザーがmysql_native_passwordを使用する代わりに、unix_socketプラグインを介して認証されることです。 プラグイン。この問題を回避するために、別の管理者ユーザーを作成し、新しい管理者ユーザーにすべての権限を付与できます。

コマンドラインからMariaDBサーバーにログインします。

sudo mariadb -u root

パスワード認証を使用して管理者ユーザーを作成します。

create user [email protected] identified by 'your-chosen-password';

すべてのデータベースに対するすべての権限を付与します。

grant all privileges on *.* to [email protected] with grant option;

特権をフラッシュして終了します;

flush privileges;

exit;

これで、adminアカウントでphpMyAdminにログインし、すべてのデータベースを管理できます。

TLS証明書の自動更新

Let's Encrypt証明書を自動的に更新するには、rootユーザーのcrontabファイルを編集するだけです。

sudo crontab -e

次に、下部に次の行を追加します。

@daily certbot renew --quiet && systemctl reload nginx

Nginxをリロードして、クライアントに新しい証明書を取得する必要があります。


Ubuntu
  1. Ubuntu18.04にNginxを使用してphpMyAdminをインストールする方法

  2. Ubuntu20.04LTSにNginxを使用してSeafileをインストールする方法

  3. Ubuntu20.04LTSでNginxを使用してModsecurityをデプロイする方法

  1. Ubuntu18.04LTSにNginxを使用してSeafileをインストールする方法

  2. Ubuntu18.04LTSにNginxを使用してGitBucketをインストールする方法

  3. Ubuntu18.04LTSにNginxでosTicketをインストールする方法

  1. Ubuntu20.04LTSにNginxを使用してGitBucketをインストールする方法

  2. Ubuntu16.04にNginx(LEMP)でTYPO38.1をインストールする方法

  3. Ubuntu20.04LTSにLEMPスタックを使用してphpMyAdminをインストールする