如何在 Ubuntu 12.04 上安装和保护 phpMyAdmin
状态:已弃用
本文涵盖不再受支持的 Ubuntu 版本。如果您目前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:
- 升级到 Ubuntu 14.04。
- 从 Ubuntu 14.04 升级到 Ubuntu 16.04
- 将服务器数据迁移到支持的版本
原因:
请参阅:
关于 phpMyAdmin
phpMyAdmin 是一个免费的 web 软件,可以在 web 上与 MySQL 一起工作——它为 MySQL 功能提供了一个方便的可视化前端。
设置
本教程中的步骤要求用户在您的虚拟专用服务器上拥有根权限。您可以在此处的第 3 步和第 4 步中了解如何进行设置。
在使用 phpMyAdmin 之前,您需要在您的服务器上安装 LAMP。如果您的服务器上没有 Linux、Apache、MySQL、PHP 堆栈,您可以在此处找到设置教程。
一旦你有了用户和所需的软件,你就可以开始在你的 VPS 上安装 phpMyAdmin 了!
安装 phpMyAdmin
安装 phpmyadmin 最简单的方法是通过 apt-get:
sudo apt-get install phpmyadmin apache2-utils
在安装过程中,phpMyAdmin 将引导您完成基本配置。该过程启动后,请按照下列步骤操作:
- 为服务器选择Apache2
- 当询问是否使用 dbconfig-common 为 phpmyadmin 配置数据库时选择 YES
- 出现提示时输入您的 MySQL 密码
- 输入您要用于登录 phpmyadmin 的密码
安装完成后,将 phpmyadmin 添加到 apache 配置中。
sudo nano /etc/apache2/apache2.conf
将 phpmyadmin 配置添加到文件中。
Include /etc/phpmyadmin/apache.conf
重启阿帕奇:
sudo service apache2 restart
然后,您可以通过转到 youripaddress/phpmyadmin 来访问 phpmyadmin。屏幕应该是这样的
安全
不幸的是,旧版本的 phpMyAdmin 存在严重的安全漏洞,包括允许远程用户最终利用底层虚拟专用服务器上的 root 权限。可以通过一个简单的过程来阻止大部分此类攻击:使用 Apache 本地用户/密码限制锁定整个目录,这将阻止这些远程用户甚至试图利用旧版本的 phpMyAdmin。
设置 .htaccess 文件
要设置它,首先要允许 .htaccess 文件在 phpmyadmin 目录中工作。您可以在 phpmyadmin 配置文件中完成此操作:
sudo nano /etc/phpmyadmin/apache.conf
在目录部分下,在“目录索引”下添加“AllowOverride All”行,使该部分看起来像这样:
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
[...]
配置 .htaccess 文件
在允许 .htaccess 文件的情况下,我们可以继续设置本地用户,其登录甚至需要访问 phpmyadmin 登录页面。
首先在 phpmyadmin 目录中创建 .htaccess 页面:
sudo nano /usr/share/phpmyadmin/.htaccess
通过在 .htaccess 文件中设置用户授权来跟进。将以下文本复制并粘贴到:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/apache2/.phpmyadmin.htpasswd
Require valid-user
下面你会看到每一行的快速解释
- AuthType: 这是指将用于检查密码的身份验证类型。密码通过 HTTP 检查,不应更改关键字 Basic。
- AuthName: 这是将在密码提示中显示的文本。你可以在这里放任何东西。
- AuthUserFile:此行指定密码文件(我们将在下一步中创建)的服务器路径。
- 需要有效用户:这一行告诉 .htaccess 文件只有密码文件中定义的用户才能访问 phpMyAdmin 登录屏幕。
创建 htpasswd 文件
现在我们将继续创建有效的用户信息。
首先创建一个 htpasswd 文件。使用 htpasswd 命令,并将文件放在您选择的目录中,只要它不能从浏览器访问即可。尽管您可以随意命名密码文件,但惯例是将其命名为 .htpasswd。
sudo htpasswd -c /etc/apache2/.phpmyadmin.htpasswd username
提示将要求您提供并确认您的密码。
保存用户名和密码对后,您可以看到密码已在文件中加密。
通过重新启动 apache 完成:
sudo service apache2 restart
访问 phpMyAdmin
phpMyAdmin 现在将更加安全,因为只有授权用户才能访问登录页面。访问 youripaddress/phpmyadmin 应该会显示这样的屏幕。
使用您生成的用户名和密码填写它。登录后,您可以使用 MySQL 用户名和密码访问 phpmyadmin。