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

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

内容

  1. 在 Ubuntu 20.04 LTS 上使用 LAMP 堆栈安装 phpMyAdmin
    1. 创建专用用户以访问 phpMyAdmin 仪表板
    2. 访问 phpMyAdmin 仪表板
    3. 保护 phpMyAdmin
      1. 禁用 MySQL root 登录到 phpmyadmin 仪表板
      2. 密码保护 phpMyAdmin 登录页面
      3. 帮助我们帮助您:

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

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

  • 安装 Apache、MySQL、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 键选择 OK,然后再次按 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 提示符下,调整以下命令以禁用验证密码插件:

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

选择“是”并按回车键使用 dbconfig-common 为 phpmyadmin 配置数据库。 这次 phpmyadmin 安装将正常工作。

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

$ mysql -u root -p

在 mysql 提示符下,调整以下命令以禁用验证密码插件:

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

键入 exit 从 mysql 提示符退出。

mysql> exit

在 MySQL 中启用验证密码插件

最后,启用 字符串 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 网络界面管理您的数据库。

保护 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 骨科

$ 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

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!