如何在 Ubuntu 16.04 上安装和保护 phpMyAdmin
介绍
虽然许多用户需要像 MySQL 这样的数据库管理系统的功能,但他们可能不习惯仅通过 MySQL 提示符与系统交互。
创建 phpMyAdmin 以便用户可以通过 Web 界面与 MySQL 交互。在本指南中,我们将讨论如何安装和保护 phpMyAdmin,以便您可以安全地使用它从 Ubuntu 16.04 系统管理您的数据库。
先决条件
在开始使用本指南之前,您需要完成一些基本步骤。
首先,我们假设您使用的是具有 sudo 权限的非根用户,如 Ubuntu 16.04 初始服务器设置中的步骤 1-4 中所述。
我们还假设您已经在 Ubuntu 16.04 服务器上完成了 LAMP(Linux、Apache、MySQL 和 PHP)安装。如果这还没有完成,您可以按照本指南在 Ubuntu 16.04 上安装 LAMP 堆栈。
最后,在使用像 phpMyAdmin 这样的软件时,还有一些重要的安全注意事项,因为它:
由于这些原因,并且因为它是一个广泛部署的 PHP 应用程序,经常成为攻击的目标,所以您永远不应该通过普通 HTTP 连接在远程系统上运行 phpMyAdmin。如果您没有使用 SSL/TLS 证书配置的现有域,则可以按照本指南在 Ubuntu 16.04 上使用 Let's Encrypt 保护 Apache。
完成这些步骤后,您就可以开始使用本指南了。
第一步 — 安装 phpMyAdmin
首先,我们将从默认的 Ubuntu 存储库安装 phpMyAdmin。
我们可以通过更新我们的本地包索引然后使用 apt
打包系统来下载文件并将它们安装到我们的系统上来做到这一点:
- sudo apt-get update
- sudo apt-get install phpmyadmin php-mbstring php-gettext
这将询问您几个问题,以便正确配置您的安装。
警告:出现第一个提示时,apache2 被突出显示,但未被选中。如果您没有按空格键选择 Apache,安装程序将不会在安装过程中移动必要的文件。按空格键、Tab 键,然后按 Enter 以选择 Apache。
- 对于服务器选择,选择 apache2。
- 当系统询问是否使用
dbconfig-common
设置数据库时选择 yes - 系统将提示您输入数据库管理员的密码
- 然后您将被要求选择并确认
phpMyAdmin
应用程序本身的密码
安装过程实际上将 phpMyAdmin Apache 配置文件添加到 /etc/apache2/conf-enabled/
目录中,自动读取该目录。
我们唯一需要做的就是显式启用 PHP mcrypt
和 mbstring
扩展,我们可以通过键入:
- sudo phpenmod mcrypt
- sudo phpenmod mbstring
之后,您需要重新启动 Apache 才能识别您的更改:
- sudo systemctl restart apache2
您现在可以通过访问服务器的域名或公共 IP 地址后跟 /phpmyadmin
来访问 Web 界面:
https://domain_name_or_IP/phpmyadmin

您现在可以使用 root
用户名和您在 MySQL 安装期间设置的管理密码登录界面。
登录后,您会看到用户界面,如下所示:

第二步 — 保护您的 phpMyAdmin 实例
我们能够相当轻松地启动和运行 phpMyAdmin 界面。然而,我们还没有完成。由于其无处不在,phpMyAdmin 是攻击者的热门目标。我们应该采取额外的措施来防止未经授权的访问。
最简单的方法之一是在整个应用程序前面放置一个网关。我们可以使用 Apache 的内置 .htaccess
身份验证和授权功能来做到这一点。
配置 Apache 以允许 .htaccess 覆盖
首先,我们需要通过编辑 Apache 配置文件来启用 .htaccess
文件覆盖。
我们将编辑已放置在 Apache 配置目录中的链接文件:
- sudo nano /etc/apache2/conf-available/phpmyadmin.conf
我们需要在配置文件的
部分添加一个 AllowOverride All
指令,如下所示:
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .
添加此行后,保存并关闭文件。
要实施您所做的更改,请重新启动 Apache:
- sudo systemctl restart apache2
创建一个 .htaccess 文件
现在我们已经为我们的应用程序启用了 .htaccess
,我们需要创建一个来实际实现一些安全性。
为了成功,必须在应用程序目录中创建该文件。我们可以创建必要的文件并在我们的文本编辑器中以 root 权限打开它,方法是键入:
- sudo nano /usr/share/phpmyadmin/.htaccess
在此文件中,我们需要输入以下信息:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
让我们回顾一下每一行的含义:
AuthType Basic
:此行指定我们正在实施的身份验证类型。该类型将使用密码文件实现密码认证。AuthName
:设置身份验证对话框的消息。您应该保持这种通用性,这样未经授权的用户就不会获得有关受保护内容的任何信息。AuthUserFile
:设置用于身份验证的密码文件的位置。这应该在所服务的目录之外。我们将很快创建此文件。Require valid-user
:指定只有经过身份验证的用户才能访问此资源。这实际上阻止了未经授权的用户进入。
完成后,保存并关闭文件。
创建用于身份验证的 .htpasswd 文件
我们为密码文件选择的位置是 \/etc/phpmyadmin/.htpasswd
。我们现在可以创建此文件并将其传递给具有 htpasswd
的初始用户公用事业:
- sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
系统将提示您为正在创建的用户选择并确认密码。之后,将使用您输入的散列密码创建该文件。
如果你想输入一个额外的用户,你需要在没有 -c
标志的情况下这样做,就像这样:
- sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
现在,当您访问 phpMyAdmin 子目录时,系统将提示您输入刚刚配置的其他帐户名和密码:
https://domain_name_or_IP/phpmyadmin

输入 Apache 身份验证后,您将被带到常规的 phpMyAdmin 身份验证页面以输入您的其他凭据。这将增加一个额外的安全层,因为 phpMyAdmin 过去曾遭受漏洞的困扰。
结论
您现在应该已经配置好 phpMyAdmin,可以在您的 Ubuntu 16.04 服务器上使用了。使用此接口,您可以轻松地创建数据库、用户、表等,并执行删除和修改结构和数据等常用操作。