本教程将向您展示如何在 Ubuntu 20.04 LTS 上使用 Apache、MariaDB、PHP7.4(LAMP 堆栈)安装 phpMyAdmin。phpMyAdmin 是一个用 PHP 编写的免费和开源的基于 Web 的数据库管理工具。它为用户提供了图形化的 Web 界面来管理 MySQL 或 MariaDB 数据库。
phpMyAdmin 允许管理员:
要学习本教程,您需要在本地计算机或远程服务器上运行 Ubuntu 20.04 操作系统。
如果您正在寻找 VPS(虚拟专用服务器),那么您可以通过我的推荐链接在 Vultr 上创建一个帐户,以获得 50 美元的免费赠金(仅限新用户)。而且如果你需要用域名设置phpMyAdmin,我建议从 Aliyun 购买域名,因为价格低而且他们免费提供whois隐私保护。
假设您已经在 Ubuntu 20.04 上安装了 LAMP 堆栈。如果没有,请查看以下教程。
有了这些,让我们开始安装 phpMyAdmin。
phpMyAdmin 包含在 Ubuntu 20.04 软件存储库中。所以我们可以使用下面的命令轻松安装它。
sudo apt update
sudo apt install phpmyadmin
上面的命令将安装所有必需的依赖项,包括 PHP7 扩展。在安装过程中,它会提示您选择要配置的 Web 服务器。点击space
栏选择apache2。(星号表示该项目已被选中)。然后按Tab
键 和Enter
确认您的选择。
在下一个屏幕中,选择Yes
为 phpMyAdmin 配置数据库dbconfig-common
。
然后phpmyadmin
在 MariaDB/MySQL 中为用户设置密码。
完成此步骤后,将phpmyadmin
创建一个名为的新数据库,并且数据库用户phpmyadmin
具有管理此数据库的必要权限。如果你和我一样好奇,你可以登录 MariaDB 并查看phpmyadmin
用户被授予了哪些权限。
您可以使用以下命令登录到 MariaDB 服务器。
sudo mysql -u root
然后检查phpmyadmin
用户的权限。
show grants for phpmyadmin@localhost;
输出:
phpmyadmin
用户的权限 如您所见,用户phpmyadmin
拥有数据库的所有权限phpmyadmin
。现在您可以通过执行退出:
exit;
现在运行以下命令来检查/etc/apache2/conf-enabled/phpmyadmin.conf
文件是否存在。
file /etc/apache2/conf-enabled/phpmyadmin.conf
如果安装过程没有错误,您应该会看到以下命令输出。
/etc/apache2/conf-enabled/phpmyadmin.conf: symbolic link to ../conf-available/phpmyadmin.conf
如果您的服务器上不存在此文件,则可能是您没有在 phpMyAdmin 设置向导中选择 Apache Web 服务器。您可以使用以下命令修复它。
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo systemctl reload apache2
安装phpMyAdmin的时候,在 放置了一个配置文件/etc/apache2/conf-enabled/phpmyadmin.conf
,可以让我们通过子目录访问phpMyAdmin。如果您在同一台 Ubuntu 20.04 服务器上安装了其他 Web 应用程序,如WordPress,那么只需/phpmyadmin
在浏览器地址栏中添加您的域名即可。
example.com/phpmyadmin
如果 phpMyAdmin 安装在您的本地 Ubuntu 计算机上,那么您可以通过在浏览器地址栏中输入以下文本来访问 phpMyAdmin Web 界面。
localhost/phpmyadmin
如果连接被拒绝或无法完成,则可能是防火墙阻止了 HTTP 请求。如果您使用的是 iptables 防火墙,那么您需要运行以下命令来打开 TCP 端口 80 和 443。
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
如果您使用UFW 防火墙,请运行此命令打开 TCP 端口 80 和 443。
sudo ufw allow 80,443/tcp
现在您可以使用 MariaDB/MySQL 用户名和密码登录 phpMyAdmin。如果您无法以 root 身份登录,请转到步骤 5 以解决此问题。
如果您的 Ubuntu 20.04 服务器没有其他 Apache 虚拟主机,那么您可能需要使用子域来访问 phpMyAdmin Web 界面。这样,您就可以启用 HTTPS 来加密流量。
首先,我们需要为 phpMyAdmin 创建一个 Apache 虚拟主机。现有的 phpMyAdmin 配置片段可以用作模板。让我们将其复制到一个新文件中。
sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf
然后使用命令行文本编辑器(例如 Nano)编辑新文件。
sudo nano /etc/apache2/sites-available/phpmyadmin.conf
这个文件缺少<VirtualHost>
标签,所以我们需要在这个文件的开头添加以下几行。替换pma.example.com
为您 null 的 phpMyAdmin 子域。不要忘记为此子域创建 DNS A 记录。
<VirtualHost *:80>
ServerName pma.example.com
DocumentRoot /usr/share/phpmyadmin
ErrorLog ${APACHE_LOG_DIR}/pma.error.log
CustomLog ${APACHE_LOG_DIR}/pma.access.log combined
在此文件的末尾添加以下行以关闭<VirtualHost>
标记。
</VirtualHost>
保存并关闭文件。(要在 Nano 文本编辑器中保存文件,请按Ctrl+O
,然后按 Enter 确认。要退出,请按Ctrl+X
。)然后启用此虚拟主机。
sudo a2ensite phpmyadmin.conf
重新加载 Apache Web 服务器以使此更改生效。
sudo systemctl reload apache2
现在您应该可以通过以下方式访问 phpMyAdmin Web 界面了
pma.example.com
在登录表单中输入用户凭据之前,让我们启用 HTTPS。
为了保护 phpMyadmin Web 界面,我们可以安装免费的 Let’s Encrypt TLS 证书。运行以下命令以从 Ubuntu 20.04 软件存储库安装 Let’s Encrypt 客户端 (certbot)。
sudo apt install certbot python3-certbot-apache
Python3-certbot-apache
是 Certbot 的 Apache 插件。现在运行以下命令来获取和安装 TLS 证书。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email you@example.com
在哪里:
系统会询问您是否希望接收来自 EFF(电子前沿基金会)的电子邮件。选择 Y 或 N 后,将自动为您获取和配置您的 TLS 证书,如下消息所示。
如果您尝试使用 MariaDB root 帐户登录 phpMyAdmin,您可能会看到以下错误。
#1698 - Access denied for user 'root '@'localhost'
或者
mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'
如果您使用 user 登录phpmyadmin
,则不会看到上述错误。但是,用户phpmyadmin
只能用于管理phpmyadmin
数据库。错误的原因是默认情况下 MariDB root 用户通过 unix_socket 插件进行身份验证,而不是使用该mysql_native_password
插件。为了解决这个问题,我们可以创建另一个管理员用户并将所有权限授予新的管理员用户。
从命令行登录到 MariaDB 服务器。
sudo mysql -u root
创建具有密码身份验证的管理员用户。
create user admin@localhost identified by 'your-preferred-password';
授予对所有数据库的所有权限。
grant all privileges on *.* to admin@localhost with grant option;
刷新权限并退出;
flush privileges;
exit;
现在您可以使用该admin
帐户登录 phpMyAmin并管理所有数据库。
我希望本教程可以帮助您在 Ubuntu 20.04 上使用 LAMP 安装 phpMyAdmin。