远程主机 Ubuntu 安装 XAMPP 后,附带的 phpmyadmin 开启运行远程登录,并没有提示登录就直接进入 MySQL 管理界面,很不安全,修改相关配置可以让其使用 https 访问并登录后才能进入,提高安全性
允许外网访问
配置 httpd-xampp.conf 使其允许外网访问
$ sudo vi /opt/lampp/etc/extra/httpd-xampp.conf
找到 <Directory “/opt/lampp/phpmyadmin”> 修改参数
<Directory "/opt/lampp/phpmyadmin">
# Require local 这一行修改为
Require all granted
保存并重启 Apache 服务
$ sudo /opt/lampp/lampp restartapache
此时访问 https://www.domain.com/phpmyadmin 即可进入 MySQL 管理页面
账户密码登录
首先给 localhost 的 root 用户添加密码,点击 phpmyadmin 的 账户 标签,在下方找到 用户名 root –主机名 localhost 一行后面点击 修改权限
点击 修改密码 按钮,在下方输入密码,点击 执行 按钮保存
然后修改 phpmyadmin 配置文件,使其不能自动登录
$ sudo vi /opt/lampp/phpmyadmin/config.inc.php
修改以下参数
$cfg['blowfish_secret'] = 'myblowfishsecretmyblowfishsecret' # 自定义且尽量长
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
修改后保存并重启 XAMPP 服务
$ sudo /opt/lampp/lampp restart
重启后访问 https://www.domain.com/phpmyadmin 即可看到需要账号密码登录
强制 HTTPS 访问
默认使用 http 访问 phpmyadmin 是不会重定向到 https 的,不安全,所以可以修改配置让其重定向
$ sudo vi /opt/lampp/etc/extra/httpd-xampp.conf
找到 <IfModule mod_perl.c>,在里面添加
<IfModule mod_perl.c>
...
PerlSendHeader On
# 强制 HTTPS 访问
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
然后重启 Apache 服务,再次用 http 访问 phpmyadmin 就可以自动跳转到 https
$ sudo /opt/lampp/lampp restartapache