如何在 Ubuntu 18.04 上使用 Apache 安装和保护 phpMyAdmin
phpMyAdmin 是一个开源 PHP 应用程序,旨在通过基于 Web 的界面处理 MySQL 和 MariaDB 服务器的管理。
phpMyAdmin 允许您管理 MySQL 数据库,用户帐户和权限,执行 SQL 语句,以各种数据格式导入和导出数据等等。
本教程介绍了在 Ubuntu 18.04 上使用 Apache 安装和保护 phpMyAdmin 所需的步骤。
先决条件
在继续本教程之前,请确保满足以下先决条件:
- [你的 Ubuntu 服务器已经安装了 LAMP(Linux, Apache, MySQL, PHP)。
- 以具有 sudo 权限的用户身份登录。
虽然没有必要,但建议通过 HTTPS 访问 phpMyAdmin 安装。如果您的域名尚未受 SSL 保护,您可以按照本指南在 Ubuntu 18.04 上使用Let’s Encrypt 保护您的 Apache。
安装 phpMyAdmin
要在您的 Ubuntu 18.04 服务器上安装 phpMyAdmin ,请按照下列步骤操作:
-
更新软件包索引并将系统软件包升级到最新版本:
sudo apt update && sudo apt upgrade
-
使用以下命令从默认的 Ubuntu 存储库安装 phpMyAdmin 软件包:
sudo apt install phpmyadmin
安装程序会提示您选择运行 phpMyAdmin 的 Web 服务器并自动配置, 然后按
空格
,选择 apache , 然后按下回车
。接下来,将询问您是否使用
dbconfig-common
设置数据库,选择Yes
并点击回车
。输入 phpMyAdmin 的密码以注册数据库,选择
OK
并按Enter
。系统将提示您确认密码,输入相同的密码,
OK
然后选择并按Enter
。 -
安装过程完成后,重新启动 Apache 以使更改生效:
sudo systemctl restart apache2
创建管理 MySQL 用户
在运行 MySQL 5.7 (及更高版本)的 Ubuntu 系统中, root 用户默认设置的身份验证方法是 auth_socket
。
该 auth_socket
插件对从 localhost 通过 Unix 套接字文件连接的用户进行身份验证。这意味着您无法通过提供密码进行身份验证。
我们将创建一个新的管理 MySQL 用户,而不是更改 MySQL 用户 root 的身份验证方法。此用户将具有与 root 用户相同的权限,并将设置为使用 mysql_native_password
身份验证方法。
我们将使用此用户登录 phpMyAdmin 仪表板并在 MySQL 或 MariaDB 服务器上执行管理任务。
首先以 root 用户身份登录 MySQL 服务器:
sudo mysql
在 MySQL shell 中执行以下命令,这些命令将创建新的管理用户并授予适当的权限:
CREATE USER 'padmin'@'localhost' IDENTIFIED BY 'super-strong-password';GRANT ALL PRIVILEGES ON *.* TO 'padmin'@'localhost' WITH GRANT OPTION;
在我们的示例中,我们命名了管理用户 padmin
。您可以使用任何您喜欢的名称,只需确保设置一个强密码即可。
访问 phpMyAdmin
要访问 phpMyAdmin 界面,请打开您喜欢的浏览器并键入服务器的域名或公共 IP 地址,后跟 /phpmyadmin
:
https://your_domain_or_ip_address/phpmyadmin
输入先前创建的管理用户登录凭据,然后单击 Go
。
登录后,您将看到 phpMyAdmin 仪表板,其外观如下所示:
保护 phpMyAdmin
要添加额外的安全层,我们将通过设置基本身份验证来密码保护 phpMyAdmin 目录。
首先,我们将使用 Apache 软件包附带的工具 htpasswd
为用户创建一个密码文件。我们将 .htpasswd
文件存储在 /etc/phpmyadmin
目录中:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd padmin
在这个例子中,我们创建了一个名为 padmin
的用户。您可以选择任何用户名,它不必与 MySQL 管理用户相同。
上面的命令将提示您输入并确认用户的密码。
New password:
Re-type new password:
Adding password for user padmin
如果要添加其他用户,可以使用不带 -c
标志的相同命令:
sudo htpasswd /etc/phpmyadmin/.htpasswd padmin2
下一步是将 Apache 配置为使用该 .htpasswd
文件密码保护 phpMyAdmin 目录。
为此,请打开 phpmyadmin.conf
在 phpMyAdmin 安装期间自动创建的文件 /etc/apache2/conf-available/phpmyadmin.conf
:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
编辑/插入以黄色突出显示的以下行:
<Directory /usr/share/phpmyadmin>
Options +FollowSymLinks +Multiviews +Indexes # edit this line
DirectoryIndex index.php
AllowOverride None
AuthType basic
AuthName "Authentication Required"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
<IfModule mod_php5.c>
...
保存并关闭该文件并重新启动 Apache 以使更改生效:
sudo systemctl restart apache2
现在,在访问 phpMyAdmin 时,系统将提示您输入之前创建的用户的登录凭据:
https://your_domain_or_ip_address/phpmyadmin
进入基本身份验证后,您将进入 phpMyAdmin 登录页面,您需要输入 MySQL 管理用户登录凭据。
将
/phpmyadmin
别名更改的更加独特和安全也是一个好主意。
结论
恭喜,您已在 Ubuntu 18.04 服务器上成功安装了 phpMyAdmin 。您现在可以开始创建 MySQL 数据库,用户和表,并执行各种 MySQL 查询和操作。