Ubuntu 18.04 服务器 / 如何安装 phpMyAdmin

要在 Ubuntu 18.04 服务器上安装 phpMyAdmin,请准备 Apache、PHP 和 MySQL 或 MariaDB,然后安装 phpmyadmin 软件包并使用数据库账户登录。安装前,请限制访问路径,以免管理工具暴露在外部,并且不要更改数据库 root 的认证设置。

安装前需要检查的事项

phpMyAdmin 是一个通过网页浏览器管理 MySQL 或 MariaDB 数据库和数据表的工具。本文描述了在现有 Ubuntu 18.04 服务器上使用 Apache 的情况。如果您使用的是独立的 Web 服务器和数据库服务器或使用 Nginx,连接路径和设置将会有所不同。

Ubuntu 18.04 LTS 的标准安全维护已于 2023 年 5 月结束。对于现有系统,建议升级到受支持的 Ubuntu 版本。如果无法立即升级,请检查是否应用了 Ubuntu Pro 的安全维护,以及 phpMyAdmin、PHP 和数据库包的更新范围。更多详情,请参考 Ubuntu 安全维护指南。

以下示例假设您已具有 sudo 权限,且已安装 Apache、PHP 以及 MySQL 或 MariaDB,并且可以通过 SSH 访问服务器。在安装之前,请备份您的数据库,并检查软件包仓库和现有网站配置。由于 Apache 设置可能在安装过程中自动应用,请首先使用防火墙或私人网络限制外部访问。

在 Apache 中限制管理路径

以下示例展示了如何直接连接到 Apache 并仅允许本地连接到服务器。首先,创建文件 /etc/apache2/conf-available/phpmyadmin-local.conf 并保存以下内容。

<Location /phpmyadmin>
    Require local
</Location>

激活设置后,检查语法,仅在检查通过时重新加载 Apache。

sudo a2enconf phpmyadmin-local
sudo apache2ctl configtest

当显示 Syntax OK 时,执行以下命令。如果出现错误,请修改设置并再次检查。

sudo systemctl reload apache2

此配置适用于示例路径。如果您有其他别名或虚拟主机,也请检查那些路径。如果前面有反向代理,Apache 可能会将代理地址视为客户端地址,因此仅凭此示例无法保证访问限制。请单独检查受信任代理和防火墙对实际客户端地址的处理。您可以在 Apache 的 访问控制文档 中查看 Require 指令。

安装 phpMyAdmin

更新软件包列表并安装它。软件包的可用性和版本可能因存储库和安全维护设置而异。

sudo apt update
sudo apt install phpmyadmin

当显示交互式安装界面时,请检查以下内容:

  1. 在Web服务器选择界面上,选择 Apache2。确保在继续之前已选中它。仅按回车键可能不会选择该项目。
  2. 如果询问关于 dbconfig-common 配置的问题,如果您希望软件包为 phpMyAdmin 的附加功能配置数据库,请选择是。此数据库与您正在管理的应用程序数据库不同。如果您计划自行管理现有设置,可以选择否。
  3. 在要求输入密码的屏幕上,检查显示的账户和用途,并输入安全密码。安装过程中所需的数据库管理员认证可能会根据现有服务器的认证方法有所不同。

安装后,检查配置文件以及 Apache 服务是否正常。Ubuntu 软件包的设置主要在 /etc/phpmyadmin 中,并可能根据软件包配置有所不同。

ls /etc/phpmyadmin
systemctl status apache2 --no-pager

通过 SSH 隧道访问

在管理员电脑上打开 SSH 客户端并运行以下命令。将 user 和 server 替换为实际的 SSH 账户和服务器地址。它将管理员电脑的 8080 端口连接到服务器的本地 80 端口,并且在 SSH 连接保持期间可以使用。

ssh -L 127.0.0.1:8080:127.0.0.1:80 user@server

在同一台电脑的浏览器中打开 http://127.0.0.1:8080/phpmyadmin。浏览器和 SSH 客户端必须在同一台电脑上运行,并且服务器上的 Apache 必须在本地 80 端口提供该路径。当登录界面出现时,输入允许的数据库用户名和密码。结束 SSH 会话也会关闭隧道。

如果您的环境配置为通过 HTTPS 直接访问,则需要有效的 TLS 证书和单独的访问限制。根据实际管理员地址在防火墙或 Apache 中设置允许的 IP,并检查允许地址和不允许地址的访问结果。建议不要将管理页面暴露给整个互联网。

登录账户和权限

phpMyAdmin 登录使用 MySQL 或 MariaDB 账户进行身份验证。请使用专用账户,仅具有操作所需数据库和操作的权限。账户的主机和权限必须与实际数据库服务器上的设置相匹配。在上传文件或进行数据更改之前,请再次确认目标和备份。

Linux 根账户和数据库根账户是不同的。如果数据库根账户配置为本地套接字认证,可能无法用于网页登录。不要试图通过直接修改系统表或清空根认证插件来解决此问题。请创建一个具有所需权限的单独账户,并遵循该数据库产品的账户管理文档。

无法连接时

  • 403 禁止访问: 检查是否应用了访问限制,以及是否正在使用 SSH 隧道。同时,验证代理和 Apache 识别的客户端地址。
  • 404 未找到: 确保在安装过程中已选择 Apache2,并且已启用 phpMyAdmin 的 Apache 配置。如果您使用其他虚拟主机或别名,也请检查这些设置。
  • 登录失败: 验证数据库用户名、密码、连接主机和权限。Web 服务器帐户或 SSH 帐户可以与数据库帐户不同。
  • PHP 页面错误: 检查 Apache 与 PHP 的集成、所需的 PHP 扩展以及 Apache 错误日志。安装和配置路径可能因发行包而异。

如果您需要恢复配置更改,请从现有备份中恢复并重新检查语法。本文中禁用本地限制设置可能会由于其他配置而使管理路径暴露给外部访问,因此首先确保已应用其他访问控制。有关 phpMyAdmin 的安装和安全设置,请参阅 官方安装文档。