phpMyAdmin
phpMyAdmin 是一个免费的 Web 软件,用于在 Web 上使用 MySQL。它为 MySQL 的功能提供了一个方便的可视化前端。
设置
在使用 phpMyAdmin 之前,您需要在服务器上安装 LAMP。如果您的服务器上没有 Linux、Apache、MySQL、PHP 栈,您可以在这里找到设置教程。
一旦您拥有用户和所需的软件,就可以开始在您的 VPS 上安装 phpMyAdmin!
安装 phpMyAdmin
安装 phpmyadmin 最简单的方法是通过 apt-get:
sudo apt-get install phpmyadmin
在安装过程中,phpMyAdmin 将引导您完成基本配置。一旦进程启动,按照以下步骤操作:
- 选择 Apache2 作为服务器
- 当询问是否要使用 dbconfig-common 配置数据库时选择 YES
- 在提示时输入您的 MySQL 密码
- 输入您想要用来登录 phpmyadmin 的密码
安装完成后,将 phpmyadmin 添加到 Apache 配置中。
sudo nano /etc/apache2/apache2.conf
将 phpmyadmin 配置添加到文件中。
Include /etc/phpmyadmin/apache.conf
重新启动 apache:
sudo service apache2 restart
然后您可以通过访问 youripaddress/phpmyadmin 来访问 phpmyadmin。屏幕应该看起来像这样。
安全性
不幸的是,旧版本的 phpMyAdmin 存在严重的安全漏洞,包括允许远程用户最终利用基础虚拟专用服务器上的 root。通过一个简单的过程,可以防止大部分这些攻击:使用 Apache 的本地用户/密码限制来锁定整个目录,这将阻止这些远程用户甚至尝试利用旧版本的 phpMyAdmin。
设置 .htaccess 文件
要设置这个,首先允许 .htaccess 文件在 phpmyadmin 目录中工作。您可以在 phpmyadmin 配置文件中完成这一点:
sudo nano /etc/phpmyadmin/apache.conf
在目录部分下,添加“AllowOverride All”行到“Directory Index”下面,使该部分看起来像这样:
<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 /path/to/passwords/.htpasswd
Require valid-user
下面是每行的简要解释:
- AuthType: 这是用于检查密码的身份验证类型。密码通过 HTTP 检查,关键字 Basic 不应更改。
- AuthName: 这是在密码提示中显示的文本。您可以在这里放任何东西。
- AuthUserFile: 此行指定密码文件的服务器路径(我们将在下一步中创建)。
- Require valid-user: 此行告诉 .htaccess 文件,只有在密码文件中定义的用户才能访问 phpMyAdmin 登录屏幕。
创建 htpasswd 文件
现在我们将继续创建有效用户信息。
首先创建一个 htpasswd 文件。使用 htpasswd 命令,并将文件放在您选择的任何目录中,只要它不能从浏览器访问即可。虽然您可以根据需要命名密码文件,但约定是将其命名为 .htpasswd。
sudo htpasswd -c /path/to/passwords/.htpasswd username
系统会提示您提供并确认密码。
一旦用户名和密码对保存,您可以看到密码已加密保存在文件中。
最后重新启动 apache:
sudo service apache2 restart
访问 phpMyAdmin
现在 phpMyAdmin 将更加安全,因为只有授权用户才能访问登录页面。访问 youripaddress/phpmyadmin 应该显示一个像这样的屏幕。
填写您生成的用户名和密码。登录后,您可以使用 MySQL 用户名和密码访问 phpmyadmin。