phpMyAdmin は、 PHPで記述された無料のオープンソース管理ツールです。 MySQLおよびMariaDBデータベースサーバーの管理に使用されます Webインターフェイスから 。ほとんどの開発者は、使いやすさと高度なSQLエディターにより、phpMyAdminを使用してデータベースサーバーとやり取りすることを好みます。これにより、複雑なSQLクエリの作成とテストが容易になります。
次のチュートリアルでは、Ubuntu20.04のソースからLEMPとphpMyAdminをインストールする方法を学習します。
前提条件
- 推奨OS: Ubuntu 20.04 –オプションの(Ubuntu21.04およびLinuxMint 20)
- ユーザーアカウント: sudoまたはrootアクセス権を持つユーザーアカウント。
- 必須: Nginx、MariaDB、PHP(LEMP)
オペレーティングシステムの更新
まず、何よりもまず、 Ubuntuを更新します 既存のすべてのパッケージが最新であることを確認するためのオペレーティングシステム:
sudo apt update && sudo apt upgrade -y
Nginx for phpMyAdmin
最新のNginxのカスタムPPAを追加
NginxでphpMyAdminを設定している場合は、Webアプリケーションをインストールする必要があります。現在、ほとんどの場合、最良の方法は、NginxバージョンとStableバージョンの両方を維持し、常に更新されている有名なOndřejSurýによるPPAを使用することです。
まず、次のように安定またはメインラインPPAを追加します。
Nginx Stable:
sudo add-apt-repository ppa:ondrej/nginx-stable -y && sudo apt update
Nginxメインライン(推奨):
sudo add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update
Nginxをインストール
安定版またはメインラインのNginxPPAをインストールした後、次のコマンドを使用してNginxをインストールします。
sudo apt install nginx-core nginx-common nginx nginx-full
MariaDB for phpMyAdmin
Ubuntu20.04用のMariaDBをインストールする
まず、MariaDBをインストールして、次のようにデータベースとユーザー名を作成する必要があります。
sudo apt install mariadb-server
これは古いバージョンであり、デフォルトのインストールはバージョン10.3であることに注意してください。 10.5や10.6などの最新バージョンのMariaDBをインストールする場合は、チュートリアルにアクセスしてください。
次に、次のコマンドを使用して初めて新規インストールした場合は、セキュリティスクリプトを実行します。
sudo mysql_secure_installation
次に、以下に従ってください:
- rootのパスワードを設定する アカウント。
- ローカルホストの外部からアクセスできるルートアカウントを削除します。
- 匿名ユーザーアカウントの削除。
- テストデータベースを削除します。デフォルトでは、匿名ユーザーがアクセスできます。
(Y)を使用することに注意してください すべてを削除します。
phpMyAdminデータベースとユーザー名を作成する
まず、MariaDBを開き、phpMyAdmin用の新しいデータベースを作成します。
sudo mysql -u root
次に、MariaDBターミナルでデータベースを作成します:
CREATE DATABASE phpmyadmindb;
次に、次のようにユーザーを作成して権限を付与する必要があります。
GRANT ALL ON phpmyadmindb.* TO phpmyadminuser@localhost IDENTIFIED BY 'password here change';
終了するには、権限をフラッシュし、次のコードで終了します。
FLUSH PRIVILEGES;
QUIT;
PHP for phpMyAdmin
最新のPHP用のカスタムPPAを追加する
Nginxのインストールと同様に、DebianのPHPメンテナーであるOndřejSurýによるPPAを追加することをお勧めします。カスタムPPAには、7.4、8.0のすべての最新バージョン、および最新の着信8.1が含まれています。
次のコマンドを使用してPPAを追加します。
sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php -y
Ubuntu20.04用のPHPをインストールする
これで、PHP7.4またはPHP8.0をインストールできます。 PHPはまだ新しく、phpMyAdminにはさらに多くのバグがある可能性があるため、今のところPHP7.4をインストールすることをお勧めします。これを実現するには、次のターミナルコマンドを使用して必要なパッケージをインストールします。
sudo apt install php7.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-mcrypt php7.4-cli php7.4-curl php7.4-zip php7.4-gd
Ubuntu20.04にphpMyAdminをインストールする
デフォルトでは、Ubuntu20.04リポジトリにはphpMyAdminと必要な依存関係が付属しています。ただし、Ubuntu LTSリリースでよくあることですが、バージョンとビルドは、現在ソースから入手できるものよりもはるかに遅れています。したがって、このガイドの目的として、次のようにソースからダウンロードします。
phpMyAdminの最新のソースバージョンをダウンロード
まず、phpMyAdminのダウンロードページにアクセスして、現在の最新バージョンを見つけます。このチュートリアルの時点では、バージョン5.1.1が最新です。
次のコードを実行して、すべての言語の最新バージョンを自動的にダウンロードします。
DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VERSION="$(echo $DATA | cut -d ' ' -f 1)"
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz
英語版をダウンロードする場合は、終了行を次のように置き換えてください。
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-english.tar.gz
次に、次のコマンドを使用してアーカイブを抽出します。
tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz
phpMyAdminを手動で構成する
抽出したディレクトリとそのサブディレクトリを/usr / shareに移動する必要があります phpMyAdminがデフォルトで設定ファイルを見つけることを期待しているディレクトリの場所。これを行うには、次のコマンドを使用します。
sudo mv phpMyAdmin-*/ /usr/share/phpmyadmin
デフォルトでは、phpMyAdminには TMPが付属していません ソースからインストールする場合はディレクトリであり、これを手動で作成する必要があります:
sudo mkdir -p /var/lib/phpmyadmin/tmp
ユーザーに正しい権限を割り当てますwww-data phpMyAdminディレクトリを使用:
sudo chown -R www-data:www-data /var/lib/phpmyadmin
phpMyAdminディレクトリには、デフォルトの設定例ファイルが含まれています。 phpMyAdminが構成を認識できるように、このファイルの名前を変更する必要があります。ただし、バックアップには CPを使用します / etc / usr / phpmyadmin/ディレクトリの場所で間違いがあった場合にコピーを作成し、デフォルトをバックアップとして保持するコマンド 。
config.sample.inc.phpをコピーします config.inc.phpへ 次のコマンドを使用します:
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
次に、お好みのテキストエディタを使用してこのファイルを開きます。チュートリアルでは、nanoテキストエディタを使用します:
sudo nano /usr/share/phpmyadmin/config.inc.php
phpMyAdminはBlowfish暗号を使用します。 $ cfg [‘blowfish_secret’]で始まる行まで下にスクロールします 。
線は次のようになります:
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
一重引用符の間に32文字のランダムな文字列を割り当てる必要があります。これを実現する最も簡単な方法は、プログラム pwgenを使用することです。 。 pwgen をインストールするには、 次のターミナルコマンドを使用します:
sudo apt install pwgen
インストールしたら、次のコマンドを実行します。
pwgen -s 32 1
次に、blowfish secretの32個のランダムな文字を取得します。出力例:

構成ファイルに暗号を追加する例(コピーしないでください):
$cfg['blowfish_secret'] = 'kQVwa2yLI6FxA3LN6E7YcW3WgtTKTZ2j'
残りのデフォルト設定は、ほとんどのユーザーで機能するはずです。サーバーがネットワーク内にある別のサーバー上にある場合は、行を見つけて変更します $ cfg [‘Servers’] [$ i] [‘host’] = プライベートIPアドレスのそれに。以下の例:
$cfg['Servers'][$i]['host'] = '192.168.55.101';
phpMyAdmin用のNginxサーバーブロックを作成する
phpMyAdmin Webインターフェイスにアクセスするには、Nginxサーバーブロックを作成する必要があります。これを分離しておくことを強くお勧めします。サブドメインでは、セキュリティとブルートフォース攻撃に役立つ名前を付けることができます。
まず、次のようにnanoテキストエディタを使用してサーバーブロックを作成して開きます。
sudo nano /etc/nginx/sites-available/phpmyadmin.conf
次に、以下のテキストをファイルに貼り付けることができます。ドメインURLを独自のものに置き換える必要があることに注意してください:
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;
}
}
静的IPアドレスからこれにアクセスするのがあなただけの場合は、最初の場所のエントリの上に次のコードを追加できます。この例を以下に示します。
allow <your ip address>;
deny all;
location / {
try_files $uri $uri/ /index.php;
}
...........................................
これは当然ブロックします IPアドレスで許可されていない限り、403エラーでページにアクセスした人。これは、本質的に、トラック内のすべての野蛮な攻撃を阻止することができますが、一部のセットアップでは実行できない可能性があります。
(CTRL + O)を使用して保存します (CTRL + X)で終了します 。
ドライランコマンドを実行して、Nginxサーバーブロックをテストします:
sudo nginx -t
エラーがない場合は、次の出力が表示されます。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
次に、変更を有効にするためにNginxサービスを再起動します。
sudo systemctl restart nginx
phpMyAdminWebUIへのアクセス
Webインターフェイスにアクセスするには、お好みのインターネットブラウザを開き、 pma.example.comと入力します。 (例)あなたのドメインで。次のようにphpMyAdminのログイン画面が表示されます。

チュートリアルの開始時に最初に設定したMariaDBユーザー名とパスワードを使用してログインします。次に、メイン画面が表示されます。

TLS証明書のインストール
さらに安全 phpMyAdmin Webインターフェースでは、オプションで無料の Let’sEncryptTLS証明書をインストールできます。 Ubuntuのデフォルトリポジトリから 。
Ubuntuターミナルで次のコマンドを実行します:
sudo apt install certbot python3-certbot-nginx
次に、次のコマンドを実行して、NginxとphpMyAdminのTLS証明書を取得してインストールします。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email your-email-address
証明書のインストール中に、 EFF(Electronic Frontier Foundation)からメールを受信するように通知されます。 。 YまたはNを選択すると、TLS証明書が自動的にインストールされ、構成されます。

これで、phpMyAdmin領域にSSLがインストールされました。必ずDigiCertやSSLLabsなどの無料のSSLテストを使用してテストしてください。