安装phpMyAdmin

橘子 发布于 2025-07-28 96 次阅读


phpMyAdmin是一个好东西,可以用来管理自己的数据库。但是吧,需要注意开放的安全性,防止数据泄露。此外,这个软件本质上就是提供了一个查看数据库的图形化界面,所以本地数据库也不能使用弱密码,否则很容易被攻击。

安装和配置

安装命令如下,加上y参数就是表示“我已经确认了不用再问我是否确认了”:

sudo apt install phpmyadmin -y

不同版本和不同系统可能会出现不同的表现。我这里出现了一个显示图形界面的东西,提示我Please choose the web server that should be automatically configured to run phpMyAdmin.。可选项有apache2和lighttpd 。可是我使用的是nginx。所以我这里选择了默认的……

接着提示如下:

  • The phpmyadmin package must have a database installed and configured before it can be used. This can be optionally handled with dbconfig-common.
  • If you are an advanced database administrator and know that you want to perform this configuration manually, or if your database has already been installed and configured, you should refuse this option. Details on what needs to be done should most likely be provided in /usr/share/doc/phpmyadmin.
  • Otherwise, you should probably choose this option.  

这玩意的意思是说,phpmyadmin软件包必须安装并配置数据库才能使用。这可以选择使用dbconfig-common来处理。如果您是高级数据库管理员,并且知道要手动执行此配置,或者您的数据库已经安装并配置,则应拒绝此选项。关于需要做什么的详细信息最有可能在/usr/share/doc/phpmyadmin中提供。只能选ok。

然后出来对话框:Configure database for phpmyadmin with dbconfig-common? 这个是问是否为phpmyadmin配置数据库。选择OK。

接着会出现重要的提示:

  • Please provide a password for phpmyadmin to register with the database server. If left blank, a random password will be generated.
  • MySQL application password for phpmyadmin

这里输入自己的密码。在安装 phpMyAdmin 时设置的密码是 phpMyAdmin 专用数据库用户(通常是 phpmyadmin@localhost)的密码,用于 phpMyAdmin 应用程序与 MySQL 服务器之间的通信。

然后就安装完毕了。

Nginx配置

这里再说一下自己的nginx配置吧。如果仅仅走完上述步骤,Nginx也可能出现一些问题。最常见的是无权访问,因为Nginx是www用户或者www-data用户,而默认的phpmyadmin目录在/usr/share/phpmyadmin,下面的文件全部都是root所有,所以nginx无权访问,怎么办呢?

参考之前写过的技术分享,给文件夹下面的文件替换拥有者,然后赋予权限就好了。

sudo chown -R admin:www-data /usr/share/phpmyadmin/
cd /usr/share/phpmyadmin/
find ./ -type d -exec chmod 755 {} \;
find ./ -type f -exec chmod 644 {} \;

这个技巧在这篇文章:网站备份恢复实战——假如炸站了 中也介绍了。

安全检查

通过phpmyadmin实际上是通过网页前端开放了数据库的完全访问能力,务必检查各个用户的权限。这里,顺带检查一下mysql的安全性吧。

登陆mysql数据库:

mysql -u root -p

查看本地用户:

SELECT user, host FROM mysql.user;

可以查看全部的用户。需要注意host,看看有没有开放localhost以外的ip准入。需要注意的是,通过phpmyadmin登录时,使用的是localhost,这里的host筛选防不住公网通过phpmyadmin的连接。

比如说,我有一个名为user的用户设置了弱密码,只向localhost开放。虽然公网ip无法通过user进行数据库连接,但是如果公网可以访问phpmyadmin,就可以通过phpmyadmin使用user登陆。

此外,检查mysql绑定的监听地址:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在这里检查bind-address。如果不需要对外开放,就改成127.0.0.1;需要监听全部地址,就使用0.0.0.0,按需使用。

此外,检查虚拟机系统的防火墙。

登录

登录时的用户名是:phpmyadmin;密码是先前输入的数据库密码。

当然,也可以使用自己数据库的用户名和密码登录。