役立つパソコンの知識を発信

UbuntuのNginxにphpMyAdminをインストールする方法

当ページのリンクには広告が含まれています。

この記事では、UbuntuのNginxにphpMyAdminをインストールする方法をご紹介します。

以前、Ubuntu上でWordPressを動かす記事を書きました。

phpMyAdminは、こういったWordPressなどのWebアプリケーションのデータベースを、Webブラウザ上から操作することができるアプリケーションです。

MySQLのコマンドが苦手でも直感的に操作することが可能です。

目次

インストール

phpMyAdminと関連するパッケージをインストールします。

$ sudo apt install phpmyadmin php-curl php-gd php-json php-mbstring php-zip

Webサーバーのタイプを選択します。今回はNginxを使用するのでチェックはせずに『Ok』を選択します。

『Yes』を選択して先に進みます。

phpmyadminユーザーのパスワードを設定します。

確認のパスワードを入力します。

データベースのrootパスワードを入力します。

インストールが終わったら以下のコマンドでphpmyadminがインストールされたことを確認します。

$ whereis phpmyadmin
phpmyadmin: /etc/phpmyadmin /usr/share/phpmyadmin

セットアップ

phpMyAdminの本体の所有者をNginxからアクセス可能なユーザーとグループに変更します。

$ chown -R www-data:www-data /usr/share/phpmyadmin

ドキュメントルートにシンボリックリンクを設置します。

$ sudo ln -s /usr/share/phpmyadmin /var/www/html/

Nginxのデフォルト設定を変更します。

$ sudo vi /etc/nginx/sites-available/default

設定を開くと以下のような設定の記載された箇所があります。『index.php』とPHPに関する記述を追記します。

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
location ~ \.php$ {
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    include fastcgi_params;
}

サービスをリロードします。

$ sudo systemctl reload nginx
$ sudo systemctl reload php7.4-fpm

<your IP address or domain>の部分を自分の環境に置き換えてブラウザでアクセスします。phpMyAdminのログインページが表示されればOKです。

独自ドメインでHTTPSに対応させる

ここからは少し応用編です。現在のままでも使用できますが、phpMyAdminもディレクトリ区切りではなく、独自ドメインでアクセス可能にすることができます。

Nginxの設定ファイルを新規作成します。

$ vi /etc/nginx/sites-available/<config name>

<your ~>の部分は自分の環境に置き換えてください。

server {
    listen 80;
    server_name <your domain>;
    root <your document root>;
    access_log /var/log/nginx/<your domain>-access.log;
    error_log /var/log/nginx/<your domain>-error.log;
    location / {
        index index.html index.htm;
    }
}

シンボリックリンクを貼って設定を有効化します。

$ sudo ln -s /etc/nginx/sites-available/<config name>e /etc/nginx/sites
-enabled/

Nginxを再起動して一度設定を反映します。

$ sudo systemctl reload nginx
$ sudo systemctl reload php7.4-fpm

次にSSL証明書を作成します。SSL証明書の基本的な作成手順は以下の記事をご確認ください。

証明書を作成するコマンドを実行します。

$ sudo /usr/local/bin/lego --accept-tos \
    --path "/etc/lego" \
    --http \
    --http.webroot "<your document root>" \
    --domains "<your domain>" \
    --email "<your email address>" \
    run

作成したSSL署名書があるか確認します。

$ sudo ls /etc/lego/certificates

問題なく終わったら、以下のコマンドで先程作成した設定ファイルを開きます。

$ sudo vi /etc/nginx/sites-available/<config name>
server {
    listen 80;
    server_name <your domain>;
    root <your document root>;
    index index.html;
    access_log /var/log/nginx/<your domain>-access.log;
    error_log /var/log/nginx/<your domain>-error.log;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name <your domain>;
    root <your document root>;
    access_log /var/log/nginx/<your domain>-access.log;
    error_log /var/log/nginx/<your domain>e-error.log;
    location / {
        index index.php index.html index.htm;
    }
    location ~ \.(png|jpg|gif|ico|css|js)$ {
        index index.html;
        break;
    }
    location ~ \.php$ {
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        include fastcgi_params;
    }
    ssl_certificate /etc/lego/certificates/<your domain>.crt;
    ssl_certificate_key /etc/lego/certificates/<your domain>.key;
}

設定ファイルに間違いがないか確認します。

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

問題なければサービスをリロードして反映します。

$ sudo systemctl reload nginx
$ sudo systemctl reload php7.4-fpm

これで作業は完了です。自分で設定したドメインにブラウザでアクセスし、phpMyAdminが表示されるか確認しましょう。

初期のユーザーは『phpmyadmin』で、インストール時に設定したパスワードです。

この記事をシェア
  • URLをコピーしました!
目次