インストール前の現状確認
どうやら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
コメント