■環境
--------------------------------------
OS:AlmaLinux 8.5
MW:nginx 1.14.1
PHP 7.4.19--------------------------------------■ドキュメントルート
/var/www/vhosts/exmample.com/pubilc_html■phpmyadminの配置ディレクトリ/var/www/phpmyadmin■Basic認証用htpasswdファイル/var/www/vhosts/exmample.com/.htpasswd
こんにちは。ガジュマル育ててる人です。
今日も困ったことがあったので、自身のメモとして起こったことと解決方を記載しておきます。
要件としては、上記環境にてドキュメントルート外にphpMyadminのファイルを設置+Basic認証が必要でした。
まず、phpMyAdminは下記よりwgetしたものを配置ディレクトリに展開
https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.tar.gz
次に、nginxのexmample.comのディレクティブにlocationを設定を行いました。
location ~^/phpmyadmin/ {
auth_basic "Basic Authentication";
auth_basic_user_file /var/www/vhosts/exmample.com/.htpasswd;
root /var/www/;
index index.php;
location ~ \.(php|phar)(/.*)?$ {
fastcgi_split_path_info ^/phpmyadmin/(.+\.php)(/.*)$;
fastcgi_intercept_errors on;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/phpmyadmin/$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php-fpm-exmaple;
rewrite /phpmyadmin/(.*)$ /$1 break;
}
そして、https://exmample.com/phpmyadminへアクセスしたところ
phpMyAdminのログイン画面はまでは表示が可能。
ただ、パスワード認証にてログインしたところ
ログイン後にURLがhttps://exmample.com/index.phpへリダイレクトされるような挙動をしており、File Not found 404のエラーが発生していた。
(404のあとhttps://exmample.com/phpmyadminにもう一度アクセスすると正常にログイン後の動作ができる模様)
いろいろ調べてみた結果、phpmyadmin側でURLを書き換えているようだったため、
/var/www/phpmyadmin/config.inc.phpに追記することで、URLが書き換わって404エラーを回避した。
$cfg['PmaAbsoluteUri'] = 'http://'.$_SERVER['SERVER_NAME'].'/phpmyadmin/';