在 Ubuntu 20.04 LTS 上使用 LAMP 堆栈安装 phpMyAdmin

PhpMyAdmin 是一个免费和开源的基于 Web 的数据库管理工具,用 PHP 编程语言编写。 使用 phpMyAdmin,数据库管理员可以通过 Web 浏览器轻松管理单个和/或多个数据库服务器。 这对于那些不熟悉 MySQL 提示的人很有用。 phpMyAdmin 允许数据库管理员执行各种数据库管理任务,例如创建、编辑、重命名、删除数据库、导入和导出数据库、创建表、字段和字段、执行 SQL 命令等等。 在本教程中,我们将在 Ubuntu 20.04 LTS 服务器操作系统上安装带有 LAMP 堆栈的 phpMyAdmin。

在 Ubuntu 20.04 LTS 上使用 LAMP 堆栈安装 phpMyAdmin

要在 Ubuntu 20.04 LTS 服务器上安装 phpMyAdmin,您应该有一个可用的 LAMP 堆栈。 如果您尚未安装 LAMP 堆栈,请参阅以下指南:

  • 安装 ApacheMySQL, PHP (LAMP) 堆栈在 Ubuntu 20.04 LTS

设置好 LAMP 堆栈后, 启用“宇宙”存储库,如果尚未启用。

$ sudo add-apt-repository universe
$ sudo apt update

现在使用命令在 Ubuntu 20.04 上安装 phpMyAdmin 和所有其他必需的依赖项:

$ sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

接下来,选择应该自动配置为运行 phpMyAdmin 的 Web 服务器。 使用向上/向下箭头选择 Web 服务器,然后按空格键。 选择 Web 服务器后,您将在其前面看到一个 *(星号)符号。 按 T​​AB 键选择确定,然后再次按 ENTER 键继续。

PhpMyAdmin 需要安装和配置数据库才能使用。 您可以使用 dbconfig-command 来完成。

选择 是的 使用 dbconfig-common 为 phpmyadmin 配置数据库:

您需要为 phpmyadmin 提供密码才能注册到 MySQL 数据库服务器。 如果没有给出密码,则会生成一个随机密码。

Enter 一个强密码并按 ENTER 继续:

Enter  phpmyadmin 的 MySQL 应用程序密码

重新输入密码:

为 phpmyadmin 重新输入 MySQL 应用程序密码

在编写本指南时,当我尝试为 phpmyadmin 设置密码时,它会引发以下错误:

 An error occurred while installing the database:
mysql said: ERROR 1819 (HY000) at line 1: Your password does not satisfy
 the current policy requirements . Your options are:                                  
* abort - Causes the operation to fail; you will need to downgrade,             
reinstall, reconfigure this package, or otherwise manually intervene          
to continue using it. This will usually also impact your ability to           
install other packages until the installation failure is resolved.            
* retry - Prompts once more with all the configuration questions                
(including ones you may have missed due to the debconf priority               
setting) and makes another attempt at performing the operation.               
* retry (skip questions) - Immediately attempts the operation again,            
skipping all questions. This is normally useful only if you have 
solved the underlying problem since the time the error occurred.              
* ignore - Continues the operation ignoring dbconfig-common errors.             
This will usually leave this package without a functional database.

mysql说:ERROR 1819 (HY000) at line 1: Your password does not meet the current policy requirements

发生此错误是因为我们启用了 验证密码 如标题部分所述的组件 “2.2 更改 MySQL root 用户的身份验证方法” 在上面附加的 LAMP 堆栈安装指南中。

要解决此问题,您需要暂时禁用验证密码组件并在设置 phymyadmin 的密码后重新启用它。 点击确定 close 上面的错误信息并选择 “中止” 取消 phpmyadmin 安装。

取消 phpmyadmin 安装

现在通过运行以下命令登录到 Mysql 提示符:

$ mysql -u root -p

在 mysql 提示符下,调整以下命令以禁用 Validate Password 插件:

mysql> UNINSTALL COMPONENT "file://component_validate_password";

请注意,上述命令只会禁用插件,但不会删除它。 您可以稍后启用它。 然后输入“exit”退出Mysql提示符。

mysql> exit

在 MySQL 中禁用验证密码插件

现在尝试使用命令再次安装 phpmyadmin:

$ sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

选择“是”并按 ENTER 以使用 dbconfig-common 为 phpmyadmin 配置数据库。 这次 phpmyadmin 安装将没有任何问题。

安装 phpmyadmin 后,重新启用验证密码插件。 为此,请登录到您的 Mysql 提示符:

$ mysql -u root -p

在 mysql 提示符下,调整以下命令以禁用 Validate Password 插件:

mysql> INSTALL COMPONENT "file://component_validate_password";

键入 exit 退出 mysql 提示符。

mysql> exit

在 MySQL 中启用验证密码插件

最后,启用 mbstring php扩展并重启 Apache 服务以更新更改,如下所示。

$ sudo phpenmod mbstring
$ sudo systemctl restart apache2

您现在可以通过从 Web 浏览器加载 info.php 文件来验证是否启用了 mbstring 扩展。

为此,请从浏览器导航到 https://IP-address/info.php。

您将看到 mbstring 插件已启用。

验证是否启用了 mbstring 扩展

创建专用用户以访问 phpMyAdmin 仪表板

安装 phpMyAdmin 后,一个名为 ‘phpmyadmin’ 将使用您在安装期间设置的管理密码自动创建。 您可以使用“phpmyadmin”用户或 mysql 登录到 phpmyAdmin 仪表板 用户。 但是,建议通过 phpMyAdmin Web 界面创建一个专用用户来管理数据库。

为此,请使用以下命令登录 mysql shell:

$ mysql -u root -p

Enter 你的 mysql 根密码。 您现在将在 mysql shell 中。

Enter 以下命令为 phpmyadmin 创建一个新的专用用户:

mysql> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'Password123#@!';

这里, phpmyadmin 是访问 phpmyadmin 仪表板的新用户。 phpmyadminuser 的密码是 密码123#@!. 用您自己的值替换这些值。

接下来使用命令为“phpmyadminuser”赋予适当的权限:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;

最后退出mysql shell:

mysql> exit

为 phpmyadmin 创建新用户

我们现在创建了一个专用用户,用于通过 phpmyadmin Web 界面管理数据库。 让我们继续访问 phpmyadmin 仪表板。

访问 phpMyAdmin 仪表板

打开您的网络浏览器并导航到 https://ip-address/phpmyadmin 或者 https://domain/phpmyadmin. 您应该会看到 phpmyadmin 登录页面。 使用 mysql 登录 phmyadmin 界面 用户或我们在上一步中创建的新用户。

登录到 Phpmyadmin

以下是 phpMyAdmin 仪表板的外观:

phpmyadmin 仪表板

从现在开始,您可以通过 phpMyAdmin Web 界面管理您的数据库。

安全的 phpMyAdmin

本节提供了一些保护 PhpMyAdmin 安装的提示。 请注意,以下步骤无法保护 phpMyAdmin 100% 安全。 但是,它们至少会减慢犯罪者闯入您的 phpmyadmin 仪表板的任何尝试。

禁用 MySQL root 登录到 phpmyadmin 仪表板

允许 mysql root 用户访问 phpMyAdmin 仪表板并不安全,尤其是在通过网络管理数据库时。 这就是我们在上一节中创建专用用户的原因。 由于我们已经有一个专用用户,我们可以安全地禁用 mysql root 登录以访问 phpmyadmin 仪表板,以最大程度地减少攻击。

一般phpmyadmin安装在 /usr/share/phpmyadmin/ 目录及其配置文件存储在 /etc/phpmyadmin 目录中。

编辑 phpmyadmin 配置文件:

$ sudo nano /etc/phpmyadmin/config.inc.php

添加/修改以下参数:

[...]
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
[...]

编辑 phpmyadmin 配置文件

Save 和 close 文件。

重新开始 Apache 使用命令的网络服务器:

$ sudo systemctl restart apache2

现在尝试以 root 用户身份登录 phpmyadmin。 你会得到 拒绝访问 错误信息:

禁用 MySQL root 登录到 phpmyadmin 仪表板

密码保护 phpMyAdmin 登录页面

由于 phpMyAdmin 很容易成为攻击者的目标,因此下一个推荐的任务是保护 phpyMyAdmin Web 登录页面。 保护 phpMyAdmin 免受未经授权访问的最常见方法是使用 Apache的内置 .htaccess 身份验证和授权功能。

首先,启用 .htaccess 通过编辑文件覆盖 /phpmyadmin.conf 文件:

$ sudo nano /etc/apache2/conf-available/phpmyadmin.conf

添加 “允许全部覆盖” 行内 <目录/usr/share/phpmyadmin> 部分如下图。

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
    AllowOverride All

编辑 phpmyadmin 配置文件

CTL+X 其次是 保存和 close 文件。

使用命令重新启动 apache 服务以更新更改:

$ sudo systemctl restart apache2

接下来,创建一个名为 .htaccess 之内 /usr/share/phpmyadmin/ 目录使用命令:

$ sudo nano /usr/share/phpmyadmin/.htaccess

在其中添加以下行:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Save 和 close 文件。

现在,运行以下命令来创建一个新用户,对于 example ostechnix

$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd ostechnix

将“ostechnix”替换为您选择的任何用户名。 您将要求为新用户提供密码。 Enter 它两次。

样本输出:

New password: 
Re-type new password: 
Adding password for user ostechnix

我们现在添加了额外的安全层来访问 phpMyAdmin Web 界面。 从现在开始,每当您尝试访问 phpMyAdmin Web 界面时,都会提示您输入您刚刚在上一步中配置的附加用户名及其密码。

安全的 phpMyAdmin 登录页面

输入正确的用户名和密码后,您将被重定向到实际的 phpmyadmin 身份验证登录页面。 只需输入您的数据库凭据即可访问 Phpmyadmin 仪表板。

相关阅读:

  • 在 Ubuntu 20.04 LTS 上使用 LEMP 堆栈安装 phpMyAdmin

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!