如何在Ubuntu 20.04/20.10上为Apache安装和保护phpMyAdmin, How To Install & Secure phpMyAdmin for Apache on Ubuntu 20.04

 

在本指南中,我们将安装和保护phpMyAdmin并使其在Ubuntu Server 20.04上与Apache一起使用。

先决条件

您应该使用具有sudo特权的非root用户,如Ubuntu 20.04 Initial Server Setup中所述

在继续本指南之前,您还应该已经安装了适用于Ubuntu 20.04的LAMP堆栈并可以提供网页。

 

1.安装phpMyAdmin

首先,更新软件包列表并在Ubuntu 20.04上安装phpMyAdmin。

下面我们有两个命令,以分隔 &&。第一个命令将更新软件包列表,以确保您获得phpMyAdmin的最新版本和依赖关系。我还包括PHP扩展php-mbstring,出于性能方面的考虑,强烈建议这样做。

sudo apt update && sudo apt install phpmyadmin php-mbstring

当要求继续时,按 y 和 ENTER

 

1.1。选择apache2

如果提示您选择Web服务器,请按 SPACE ,[*] 在apache2旁边 放一个星号 ,然后按 TAB 以突出显示“ 确定”  ,然后按 ENTER

phpmyadmin-setup-apache2-1024x529-1
phpmyadmin-setup-apache2-1024×529-1

 

1.2。配置数据库

选择 Yes,然后按 ENTER 安装和配置数据库。

phpmyadmin-install2
phpmyadmin-install2

 

1.3。申请密码

phpMyAdmin内部使用MySQL应用程序密码与MySQL进行通信,因此不建议您使用它登录phpMyAdmin。您可以将其保留为空白,并会自动生成一个密码。

ENTER继续。

phpmyadmin-install3
phpmyadmin-install3

 

2.测试phpMyAdmin

现在,您应该能够通过访问服务器的域名或公共IP地址(后跟)来访问phpMyAdmin Web界面 /phpmyadmin。例如 http://example.com/phpmyadmin 或 http://192.168.1.10/phpmyadmin

 

如果您还没有域名或不知道您的IP,可以通过以下方法查找:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

 

phpmyadmin-login
phpmyadmin-login

 

MySQL root帐户和phpMyAdmin

在MySQL 5.7及更高版本中,您将无法使用MySQL根帐户登录phpMyAdmin,并且将收到错误消息“用户’root’@’localhost’的访问被拒绝”。相反,您应该仅为phpMyAdmin创建一个新的超级用户帐户。如果要强制MySQL允许通过phpMyAdmin进行root登录,请参见:无法使用root登录phpMyAdmin

 

3.创建MySQL超级用户

在终端中,使用您的MySQLroot密码登录到MySQL  。

首次安装MySQL时,您可能已经创建了root密码,或者密码可能为空。如果您忘记了MySQL根密码,请参阅:重置MySQL根密码

sudo mysql -u root -p

 

登录后,使用您选择的用户名添加一个新的MySQL超级用户。在此示例中,我们称之为 pmauser单击此处生成一个强密码,password_here在下面替换它。

CREATE USER 'pmauser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password_here';

 

现在,将超级用户特权授予我们的新用户pmauser

GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'localhost';

 

退出MySQL。

exit

 

您现在应该可以使用此新用户帐户访问phpMyAdmin。

image
image

强烈建议您在以下步骤中为phpMyAdmin设置一些其他安全性。

 

4.晦涩的phpMyAdmin URL

Bot会连续扫描Web服务器以查找默认的phpMyAdmin登录页面,因此建议您将URL更改为其他名称。

在此示例中,我们将其从更改 example.com/phpmyadmin 为 example.com/pmahidden

 

使用nano文本编辑器打开Apache的phpMyAdmin配置文件。

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

 

Alias从更改/phpmyadmin为 /pmahidden –您可以将其更改为所需的任何值。

 

/etc/apache2/conf-available/phpmyadmin.conf

# phpMyAdmin default Apache configuration

Alias /pmahidden /usr/share/phpmyadmin

 

保存并退出(按CTRLXY然后按ENTER

现在,您必须重新加载Apache服务才能使更改生效。

sudo service apache2 reload

您现在应该可以在以下位置访问phpMyAdmin example.com/pmahidden

5.用.htpasswd保护

我们可以使用进一步保护phpMyAdmin登录页面.htpasswd。这就增加了针对机器人和攻击者的另一道防线。

auth3
auth3

5.1。允许.htaccess覆盖

要进行设置.htpasswd,我们必须首先将phpMyadmin Apache配置文件更改为允许.htaccessOverrides。

 

nano文本编辑器中打开配置文件。

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

 

AllowOverride All在下面 添加 DirectoryIndex index.php

/etc/apache2/conf-available/phpmyadmin.conf

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

保存并退出(按CTRLXY然后按ENTER

 

现在重新加载Apache服务。

sudo service apache2 reload

 

5.2。设置.htpasswd

我们将.htaccess使用nano文本编辑器在phpMyAdmin安装目录中创建一个新文件。

sudo nano /usr/share/phpmyadmin/.htaccess

 

粘贴在下面。(如果在Windows上使用PuTTY,请使用鼠标右键粘贴)

/usr/share/phpmyadmin/.htaccess

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

保存并退出(按CTRLXY然后按ENTER

 

现在,我们可以.htpasswd使用该htpasswd工具生成文件了 。

在此示例中,我们将创建一个名为pmauser(php是我的管理员用户)的新用户,尽管您可以将其更改为所需的任何名称。

sudo htpasswd -c /etc/phpmyadmin/.htpasswd pmauser

系统将要求您输入两次新密码(单击此处生成一个强密码)。

 

就是这样,您完成了!在浏览器中访问phpMyAdmin,现在将提示您输入登录详细信息。

本文:如何在Ubuntu 20.04上为Apache安装和保护phpMyAdmin, How To Install & Secure phpMyAdmin for Apache on Ubuntu 20.04

Leave a Reply