云网牛站
所在位置:首页 > Linux云数据库 > 在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

2019-07-13 11:50:10作者:乌彩燕稿源:云网牛站

本文介绍在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤:在Ubuntu 18.04上安装phpMyAdmin、从子目录访问phpMyAdmin、从子域访问phpMyAdmin、使用Apache在phpMyAdmin上启用HTTPS、解决phpMyAdmin登录错误、安装最新的phpMyAdmin稳定版本、启用双因素身份验证。请先安装LAMP,参考在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]一文。

 

第1步:在Ubuntu 18.04上安装phpMyAdmin

phpMyAdmin包含在Ubuntu 18.04软件库中,所以我们可以使用下面的命令轻松安装它:

sudo apt update

sudo apt install phpmyadmin

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

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

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

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

然后在MariaDB/MySQL中为phpmyadmin用户设置密码:

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

完成此步骤后,将创建名为phpmyadmin的新数据库,并且数据库用户phpmyadmin具有管理此数据库的必要权限,你可以登录MariaDB并检查phpmyadmin用户被授予的权限。

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

sudo mysql -u root

然后检查phpmyadmin用户的权限:

show grants for phpmyadmin@localhost;

输出:

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

如你所见,用户phpmyadmin拥有数据库phpmyadmin的所有权限,现在可以执行以下命令退出:

exit;

 

第2步:从子目录访问phpMyAdmin

安装phpMyAdmin时,配置文件放在/etc/apache2/conf-enabled/phpmyadmin.conf中,这允许我们通过子目录访问phpMyAdmin,如果你在同一个Ubuntu 18.04服务器上安装了其他Web应用程序(如WordPress,参考在Ubuntu 18.04系统下搭建WordPress全过程),则只需在浏览器地址栏中添加/phpmyadmin域名:

your-domain.com/phpmyadmin

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

如果在本地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

参考:Debian、Ubuntu、Linux Mint系统中的UFW防火墙入门教程

现在可以使用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

参考:nano命令_Linux nano命令使用详解:字符终端文本编辑器

在此文件的开头添加以下行,将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

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

在登录表单中输入用户帐户及密码之前,让我们启用HTTPS。

 

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

为了保护phpMyadmin Web界面,我们可以安装免费的Let's Encrypt TLS证书,运行以下命令从Ubuntu 18.04软件存储库安装Let的加密客户端(参考:使用Certbot:在Linux上安装letsencrypt的最简单方法):

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

注:请自行修改pma.example.com和you@example.com。

说明:

-apache:使用Apache身份验证器和安装程序

-agree-tos:同意让我们加密服务条款。

-redirect:添加301重定向。

-hsts:将Strict-Transport-Security标头添加到每个HTTP响应中。

-staple-ocsp:启用OCSP Stapling。

-must-staple:将OCSP Must Staple扩展添加到证书中。

-d选项后跟一个域名列表,以逗号分隔,最多可以添加100个域名。

-email:用于注册和恢复联系的电子邮件。

系统将询问你是否要接收EFF(Electronic Frontier Foundation)的电子邮件,选择Y或N后,将自动获取并配置你的TLS证书,如下面的消息所示:

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

 

第5步:解决phpMyAdmin登录错误

如果你尝试使用MariaDB root帐户登录phpMyAdmin,可能会看到以下错误:

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

和:

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

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

从命令行登录MariaDB服务器:

sudo mysql -u root

使用密码身份验证创建管理员用户,请注意更改your-preferred-password:

create user admin@localhost identified by 'your-preferred-password';

授予所有数据库的所有权限:

grant all privileges on *.* to admin@localhost with grant option;

刷新权限并退出:

flush privileges;

exit;

现在可以使用管理员帐户登录phpMyAmin并管理所有数据库:

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

 

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

Ubuntu 18.04存储库自带PHP7.2和phpMyAdmin 4.6.6,你可以在浏览器标题栏中查看你的phpMyAdmin版本:

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

但是,自4.7.4版以来,phpMyAdmin支持PHP7.2,当你使用phpMyAdmin 4.6.6和PHP7.2时,你将在导出和导入选项卡中看到以下警告消息:

parameter must be an array or an object that implements countable

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

为了解决兼容性问题,我们可以安装phpMyAdmin 4.9,这是本文选写时的最新稳定版本,到phpmyadmin网站下载phpMyAdmin-4.9.0.1-all-languages.zip文件即可:

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

然后提取它:

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

编辑vendor配置文件:

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错误:

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

 

第7步:启用双因素身份验证

你还可以通过启用双因素身份验证来强化phpMyAdmin,这是4.8版本中添加的功能,要启用它,请登录phpMyAdmin,然后转到设置->双因素身份验证(Settings -> Two-factor authentication),然后选择身份验证应用程序(2FA):

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

单击配置双因素身份验证按钮后,将看到一个QR码,需要使用手机上的双因素身份验证应用程序进行扫描:

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

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

在Ubuntu 18.04服务器上安装phpMyAdmin的完整步骤

至此,在Ubuntu 18.04上安装phpMyAdmin的工作全部完成了。

 

相关主题

在Ubuntu 18.04服务器上设置SSH双因素身份验证的方法

精选文章
热门文章