在 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环境。

如何在 Ubuntu 20.04 搭建 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 管理数据库。

0 评论

Leave a Reply

Your email address will not be published. Required fields are marked *