UbuntuにphpMyAdminのインストール

目次

インストール前の現状確認

どうやらphpMyAdminのバージョンが古かったので、エラーが大量に表示されたみたいです。そこで、最新版のphpMyAdminにインストールし直すことにします。

最新版phpMyAdminのダウンロード

古いphpMyAdminの削除

sudo rm -rf /usr/share/phpmyadmin

最新版のダウンロード

次のコードを実行して、すべての言語の最新バージョンを自動的にダウンロードします。

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

アーカイブの抽出

次のコマンドを使用してアーカイブを抽出します。

tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz

phpmyadminの移動

 phpmyadminをユーザーのhomeから/user/share/phpmyadmin へ移動します。

sudo mv phpMyAdmin-*/ /usr/share/phpmyadmin

設定ファイルの作成

設定ファイルの作成

phpmyadminの中に config.sample.inc.php 名のサンプルファイルが有るので、それを config.inc.php 名でコピーします。

sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

pwgenのインストール

作成した configファイルの16行目の blowfish_secret の箇所に32個のランダムな文字列を入力するために、pwgenをインストールします。

sudo apt install pwgen

暗号の作成

下記のコマンドで暗号を生成します。

pwgen -s 32 1

設定ファイルの修正

生成した32個のランダムな文字列を下記のファイルの browfish_secret の箇所に入力します。

sudo vim /usr/share/phpmyadmin/config.inc.php

Basic認証の作成

phpMyAdminのセキュリティを強化するために、Basic認証を作成します。

apache2-utilsのインストール

Basic認証ユーザー作成のための htpasswdコマンドはapache2-utilsが必要なので、インストールします。

sudo apt install -y apache2-utils

認証用ユーザーを登録

次に、認証用ユーザーを登録します。

sudo htpasswd -c /etc/nginx/.htpasswd admin-user

Nginxの設定

そして、NginxにmariaDBへの接続用の環境設定ファイルを maria 名(任意)で作成します。

sudo vim /etc/nginx/sites-available/maria

下記の内容を記述します。server_name にはドメイン名を指定してください。winroad.bizのドメインにサブドメインの maria.winroad.biz を作成しています。

server {
    listen 80;
    listen [::]:80;
    server_name maria.winroad.biz;

    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;
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }

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

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

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

シンボリックリンクの作成

下記コマンドで、sites-enabledにシンボリックリンクを作成します。

sudo ln -s /etc/nginx/sites-available/maria /etc/nginx/sites-enabled

アクセスの確認

ブラウザから下記を入力してアクセスの確認を行います。

http://maria.winroad.biz

Basic認証

Basic認証で、アカウント名:admin-user、パスワード:admin-passwordでアクセスします。

phpMyAdminの認証

phpMyAdminのログインページが開いたら、ユーザー名:admin-user、パスワード:admin-passwordでアクセスできます。

tmpディレクトリの作成

下の方にtmpディレクトリが無い旨のメッセージが表示されたので、tmpディレクトリを作成します。

sudo mkdir /usr/share/phpmyadmin/tmp

パーミッションの設定

sudo chown www-data. /usr/share/phpmyadmin/tmp

Basic認証の再設定

ルートユーザーにスイッチ

su -
// パスワードを2回入力
htpasswd -c /etc/nginx/.htpasswd admin-user

同じパスワードを2回入力

# Basic 認証用ユーザー登録
New password:  new-password
Re-type new password: new-password
Adding password for user admin-user
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次