如何在Debian 9上使用Apache安装和保护phpMyAdmin
phpMyAdmin是一个免费的,基于PHP的开放源代码应用程序,旨在简化基于Web的界面上MySQL和MariaDB服务器的管理。
phpMyAdmin允许我们管理MySQL数据库,用户帐户和特权,执行SQL语句,以多种数据格式导入和导出数据等等。
本教程描述了使用Apache Web服务器在Debian 9上安装和保护phpMyAdmin所需的步骤。
准备工作
在继续本教程之前,请确保满足以下要求:
- 在Debian服务器上安装了LAMP(Linux,Apache,MySQL和PHP)。
- 以具有sudo特权的用户身份登录。
尽管是可选的,但建议我们通过HTTPS访问phpMyAdmin安装。
如果域尚未受SSL保护,则可以按照本教程进行操作,并使用“在Debian 9上进行加密”来保护Apache。
安装phpMyAdmin
执行以下步骤在Debian 9上安装phpMyAdmin:
- 更新软件包索引并将系统软件包升级到最新版本:
sudo apt update && sudo apt upgrade
- 通过键入以下命令从默认Debian存储库中安装phpMyAdmin软件包:
sudo apt install phpmyadmin
安装程序将要求我们选择应自动配置为运行phpMyAdmin的Web服务器,按“ Space”,然后按“ Enter”选择apache。
接下来,将询问我们是否使用“ dbconfig-common”设置数据库,选择“是”并单击“ Enter”。
输入phpMyAdmin的密码以在数据库中注册,选择“确定”,然后按“ Enter”。
确认密码,选择“确定”,然后按“ Enter”。
- 安装过程完成后,请重新启动Apache以使更改生效:
sudo systemctl restart apache2
创建管理MySQL用户
在运行MariaDB 10.1(及更高版本)的Debian系统中,默认情况下,root用户被设置为使用“ auth_socket”身份验证方法。
“ auth_socket”插件对通过Unix套接字文件从本地主机连接的用户进行身份验证。
这意味着我们无法通过提供密码来认证为根用户。
我们将创建一个新的管理MySQL用户,而不是更改MySQL用户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
输入我们先前创建的管理用户登录凭据,然后单击“转到”。
登录后,我们将看到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以密码保护phpMyAdmin目录并使用“ .htpasswd”文件。
为此,请打开在phpMyAdmin安装过程中自动创建的“ phpmyadmin.conf”文件:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
并编辑/插入以下以黄色突出显示的行:
/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'别名更改为更独特和安全的名称也是一个好主意。