如何在Ubuntu 18.04上使用Apache(LAMP)安装phpMyAdmin

本教程将向您展示如何在Ubuntu 18.04 LTS上使用Apache,MariaDB,PHP7.2(LAMP堆栈)安装phpMyAdmin。 phpMyAdmin是一个免费的开放源代码的基于Web的数据库管理工具,用PHP编写。 它为用户提供了图形Web界面来管理MySQL或MariaDB数据库。 我们还将学习如何在phpMyAdmin上启用两因素身份验证。

phpMyAdmin允许管理员执行以下操作:

  • 浏览数据库和表;
  • 创建,复制,重命名,更改和删除数据库;
  • 创建,复制,重命名,更改和删除表;
  • 进行桌子维护;
  • 添加,编辑和删除字段;
  • 执行任何SQL语句,甚至多个查询;
  • 创建,更改和删除索引;
  • 将文本文件加载到表中;
  • 创建和读取表或数据库的转储;
  • 将数据导出为SQL,CSV,XML,Word,Excel,PDF和LaTeX格式;
  • 管理多个服务器;
  • 管理MySQL用户和特权;
  • 使用配置提示检查服务器设置和运行时信息;
  • 检查MyISAM表中的参照完整性;
  • 使用示例查询(QBE)自动创建复杂的查询
  • 连接所需的表;
  • 创建数据库布局的PDF图形;
  • 在数据库或其子集中进行全局搜索;
  • 使用一组预定义的功能将存储的数据转换为任何格式,例如将BLOB数据显示为图像或下载链接;
  • 管理InnoDB表和外键;

先决条件

要遵循本教程,您需要在本地计算机或远程服务器上运行的Ubuntu 18.04 OS。

如果您正在寻找VPS(虚拟专用服务器),则可以通过我的推荐链接在Vultr创建一个帐户,以获取50美元的免费信用(仅限新用户)。 并且,如果您需要使用域名设置phpMyAdmin,我建议您从NameCheap购买域名,因为价格低廉,而且它们免费提供whois隐私保护。

假定您已经在Ubuntu 18.04上安装了LAMP堆栈。 如果没有,请查看以下教程。

  • 如何在Ubuntu 18.04 LTS上安装LAMP堆栈(Apache,MariaDB,PHP7.2)

有了这一点,让我们开始安装phpMyAdmin。

步骤1:在Ubuntu 18.04上下载并安装phpMyAdmin

phpMyAdmin包含在Ubuntu 18.04软件存储库中。 因此我们可以使用以下命令轻松安装它。

sudo apt update
sudo apt install phpmyadmin

上面的命令将安装所有必需的依赖项,包括PHP7扩展。 在安装过程中,它将提示您选择要配置的Web服务器。 点击空格键选择apache2。 (星号表示已选择该项目)。 然后按Tab键和Enter确认您的选择。

在下一个屏幕中,选择 Yes 用phpMyAdmin配置数据库 dbconfig-common

phpmyadmin Apache配置

然后为 phpmyadmin MariaDB / MySQL中的用户。

安装phpmyadmin ubuntu 18.04 apache2

完成此步骤后,将创建一个名为 phpmyadmin 创建并且数据库用户 phpmyadmin 具有管理此数据库的必要特权。 如果您像我一样好奇,可以登录MariaDB并检查哪些特权 phpmyadmin 用户已被授予。

您可以使用以下命令登录MariaDB服务器。

sudo mysql -u root

然后检查 phpmyadmin 用户。

show grants for [email protected];

输出:

phpmyadmin数据库配置

如您所见,用户 phpmyadmin 对数据库拥有所有特权 phpmyadmin。 现在您可以执行以下命令退出:

exit;

步骤2:从子目录访问phpMyAdmin

安装phpMyAdmin时,将配置文件放置在 /etc/apache2/conf-enabled/phpmyadmin.conf,它使我们可以通过子目录访问phpMyAdmin。 如果您已在同一Ubuntu 18.04服务器上安装了其他Web应用程序(如WordPress),则只需添加 /phpmyadmin 在浏览器地址栏中输入您的域名之后。

your-domain.com/phpmyadmin

phpmyadmin ubuntu

如果本地Ubuntu计算机上安装了phpMyAdmin,则可以通过在浏览器地址栏中键入以下文本来访问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 http
sudo ufw allow https

现在您可以使用MariaDB / MySQL用户名和密码登录phpMyAdmin

步骤3:从子域访问phpMyAdmin

如果您的Ubuntu 18.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

在此文件的开头添加以下行。 将pma.example.com替换为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>

保存并关闭文件。 (要在Nano文本编辑器中保存文件,请按 Ctrl+O,然后按Enter确认。 要退出,请按 Ctrl+X。)然后启用此虚拟主机。

sudo a2ensite phpmyadmin.conf

重新加载Apache Web服务器以使此更改生效。

sudo systemctl reload apache2

现在您应该能够通过以下方式访问phpMyAdmin Web界面

pma.example.com

如何在lubuntu中安装phpmyadmin

在登录表单中输入用户凭据之前,让我们启用HTTPS。

步骤4:使用Apache在phpMyAdmin上启用HTTPS

为了保护phpMyadmin Web界面的安全,我们可以安装免费的Let’s Encrypt TLS证书。 运行以下命令从Ubuntu 18.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 [email protected]

说明:

  • –apache: 使用Apache身份验证器和安装程序
  • –同意:同意让我们加密服务条款
  • –重定向:添加301重定向。
  • –hsts:将Strict-Transport-Security标头添加到每个HTTP响应。
  • –staple-ocsp:启用OCSP装订。
  • –必须装订:将OCSP必须装订扩展名添加到证书中。
  • -d 标志后面是域名列表,以逗号分隔。 您最多可以添加100个域名。
  • -电子邮件:用于注册和恢复联系的电子邮件。

系统将询问您是否要接收来自EFF(电子前沿基金会)的电子邮件。 选择Y或N后,将自动为您获取并配置您的TLS证书,如以下消息所示。

ubuntu 18.04 phpmyadmin apache子域配置

步骤5:排除phpMyAdmin登录错误

如果尝试使用MariaDB根帐户登录phpMyAdmin,则可能会看到以下错误。

#1698 - Access denied for user 'root '@'localhost'

mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'

如果您使用用户登录 phpmyadmin,您不会看到上述错误。 但是,用户 phpmyadmin 只能用于管理 phpmyadmin 数据库。 错误的原因是,默认情况下,通过unix_socket插件对MariDB超级用户进行身份验证,而不是使用 mysql_native_password 插入。 为了解决这个问题,我们可以创建另一个管理员用户,并将所有特权授予新的管理员用户。

从命令行登录到MariaDB服务器。

sudo mysql -u root

创建一个具有密码身份验证的管理员用户。

create user [email protected] identified by 'your-preferred-password';

在所有数据库上授予所有特权。

grant all privileges on *.* to [email protected] with grant option;

刷新特权并退出;

flush privileges;

exit;

现在,您可以使用来登录phpMyAmin admin 帐户并管理所有数据库。

mysqli_real_connect HY0001698用户'root'@'localhost'的访问被拒绝

步骤6:安装最新稳定版本的phpMyAdmin

Ubuntu 18.04存储库随附PHP7.2和phpMyAdmin 4.6.6。 您可以在浏览器标题栏中检查您的phpMyAdmin版本。

ubuntu 18.04 Apache phpmyadmin 4.9

但是,自版本4.7.4开始,phpMyAdmin支持PHP7.2。 当您将phpMyAdmin 4.6.6与PHP7.2结合使用时,您将在“导出和导入”选项卡中看到以下警告消息。

parameter must be an array or an object that implements countable

参数必须是实现可数的数组或对象

要解决兼容性问题,我们可以安装phpMyAdmin 4.9,它是撰写本文时最新的稳定版本。 使用下载 wget

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip

提示:您始终可以使用上述URL格式来下载phpMyAdmin的最新稳定版本。 只需用最新版本号替换4.9.0.1。

然后将其提取。

sudo apt install unzip

unzip phpMyAdmin-4.9.0.1-all-languages.zip

备份原始的phpMyAdmin文件。

sudo mv /usr/share/phpmyadmin /usr/share/phpmyadmin-original

将phpMyadmin 4.9移至 /usr/share/phpmyadmin/ 目录。

sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin

编辑供应商配置文件。

sudo nano /usr/share/phpmyadmin/libraries/vendor_config.php

找到以下行。

define('CONFIG_DIR', '');

更改为

define('CONFIG_DIR', '/etc/phpmyadmin/');

保存并关闭文件。 然后创建 tmp 文件夹以存储缓存文件。

sudo mkdir /usr/share/phpmyadmin/tmp

将用户所有权和组所有权更改为 www-data

sudo chown www-data:www-data /usr/share/phpmyadmin/tmp

现在,您可以使用phpMyAdmin 4.9而不会看到PHP错误。

phpmyadmin最新版本ubuntu 18.04 Apache

启用两因素身份验证

您还可以通过启用双重身份验证来加强phpMyAdmin,这是4.8版中新增的功能。 要启用它,请登录phpMyAdmin。 然后去 Settings -> Two-factor authentication 然后选择 身份验证应用程序(2FA)

安全的phpmyadmin

单击后 配置两因素身份验证 按钮,系统会显示一个QR码,您需要使用手机上的两因素身份验证应用程序对其进行扫描。

配置两因素认证phpmyadmin

Google Authenticator是一个受欢迎的2FA应用程序,但我推荐FreeOTP,它是由Red Hat开发的开源2FA应用程序。 输入2FA应用程序生成的身份验证代码后,就会启用两因素身份验证。 如果现在注销并重新登录,则除了用户名和密码外,还需要输入验证码。

安全的phpmyadmin

包起来

我希望本教程可以帮助您在Ubuntu 18.04上使用LAMP安装phpMyAdmin。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂

Sidebar