在 Ubuntu 20.04 安装 phpMyAdmin 管理 MariaDB 数据库并从子域访问 phpMyAdmin
前言
本教程将向你讲解如何在 Ubuntu 20.04 LTS 上安装phpMyAdmin,学习后你可以轻松的在自己的 VPS 上 安装phpMyAdmin。phpMyAdmin是一个免费的开放源代码的基于Web的数据库管理工具。它提供了图形Web界面来管理MariaDB或MySQL数据库。
phpMyAdmin允许管理员执行以下的操作:
- 通过Web浏览数据库和表
- 创建,复制,重命名,更改和删除数据库
- 创建,复制,重命名,更改和删除表
- 执行任何SQL语句
- 创建和读取表或数据库
- 将数据导出为多种格式,如SQL,CSV,XML等
- 管理用户
- 搜索各种存储数据
- 等等
先决条件
开始本教程前你需要在VPS服务器上安装 Ubuntu 20.04 LTS 并且安装 LAMP环境.
如果您正在寻找VPS(虚拟专用服务器),则可以通过此链接在DigitalOcean注册帐户,获得$100的免费额度。(仅适用于新用户且有时效性)。也可以通过此链接在Vultr上注册帐户,获得$100的免费额度(仅限新用户且有时效性)。再或者通过Linode注册账号,获得$100的免费额度(仅限新用户且有时效性)。以上都是国外VPS当中性价比较高的服务器。如果需要在国内购买云服务器,可以注册阿里云,腾讯云等。
如果你没有在 Ubuntu 20.04 上安装了 LAMP环境,那么可以查看以下教程先安装 LAMP环境。
那么下面我们就开始安装phpMyAdmin。
第一步: 下载和安装 phpMyAdmin
sudo apt update
sudo apt install phpmyadmin
上面的命令将会安装所有必需的依赖项。在安装过程中,将会提示你选择要配置的Web服务器。这里我们选择 Apache2(星号代表已选择),然后按回车键确认选择执行下面的程序。
在下面的图示中,我们选择 Yes 配置phpMyAdmin数据库。
最后输入phpmyadmin用户的密码。
第二步:通过子域名访问phpMyAdmin
如果你喜欢通过使用子域名访问phpMyAdmin Web界面来管理MariaDB/MySQL。那么可以根据以下方法来配置。
首先我们需要为 phpMyAdmin 创建一个 Apache 虚拟主机。新创建一个phpmyadmin.conf配置文件。
sudo vim /etc/apache2/sites-available/phpmyadmin.conf
复制下面配置代码粘贴到 phpmyadmin.conf
文件中,phpmyadmin.domain.com
要替换为你自己的域名。在这里提示下,请不要忘记为子域名创建DNS CHAME记录。
<VirtualHost *:80>
ServerName phpmyadmin.domain.com
DocumentRoot /usr/share/phpmyadmin
ErrorLog ${APACHE_LOG_DIR}/pma.error.log
CustomLog ${APACHE_LOG_DIR}/pma.access.log combined
</VirtualHost>
保存并退出文件。然后使用以下命令启动刚才创建的虚拟主机。
sudo a2ensite phpmyadmin.conf
重新加载 Apache Web 服务器让新创建的虚拟主机生效。
sudo systemctl reload apache2
完成上面的步骤后我们就可以通过子域名访问 phpMyAdmin 网页界面了。在浏览器输入以下地址:
phpmyadmin.domain.com
如果你想启用HTTPS安全登陆 phpMyAdmin 网页界面,可以安装 Let’s Encrypt 证书。请按照以下章节流程安装,配置Let’s Encrypt。
安装Let’s Encrypt 证书加密网址
为了保护 phpMyAdmin 网页界面,我们可以安装免费的Let’s Encrypt LTS 证书。运行以下命令,从 Ubuntu 20.04 LTS 软件存储库中安装 Let’s Encrypt 客户端。
sudo apt install certbot python3-certbot-apache
Python3-certbot-apache 是 Certbot 的 Apache 插件。 现在运行以下命令以获取并安装证书。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d phpmyadmin.yourdomain.com --email you@example.com
certbot 参数说明:
- –apache: 使用Apache身份验证器和安装程序
- –agree-tos: 同意加密服务条款
- –redirect: 通过添加301永久重定向来实施HTTPS
- –hsts: 将Strict-Transport-Security标头添加到每个HTTP响应
- –staple-ocsp: 启用OCSP装订
- –must-staple: 将OCSP必须订书钉扩展名添加到证书
- -d: 标志后面是域名列表,以逗号分隔。 你最多可以添加100个域名
- –email: 用于注册和恢复联系人的电子邮件
配置完成之后再次登录页面就可以看到使用HTTPS安全锁的链接。如下图所示:
解决 phpMyAdmin 登录错误
如果尝试使用 MariaDB root 帐户登录到 phpMyAdmin 网页页面时,则可能会看到以下错误。
#1698 - Access denied for user 'root '@'localhost'
或者:
mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'
出现这个错误的原因是,MaraDB默认情况下,通过 unix_socket 不是通过 mysql_native_password 对 MariDB 超级用户进行身份验证。 为了解决这个问题,我们可以将root管理员用户改为使用 mysql_native_password。
从命令行登录到MariaDB数据库。
sudo mysql -u root -p
修改root管理员用户使用 mysql_native_password 插件。
UPDATE mysql.user SET plugin = 'mysql_native_password', authentication_string = PASSWORD('your_root_password') WHERE User = 'root';
刷新权限并退出。
flush privileges;
exit;
现在通过使用 root 账号登录 phpMyAdmin,可以看到错误消失了。
总结
我希望本教程可以帮助你在 Ubuntu 20.04 上安装 phpMyAdmin 管理数据库。