如何在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
MariaDB / MySQL中的用户。
完成此步骤后,将创建一个名为 phpmyadmin
创建并且数据库用户 phpmyadmin
具有管理此数据库的必要特权。 如果您像我一样好奇,可以登录MariaDB并检查哪些特权 phpmyadmin
用户已被授予。
您可以使用以下命令登录MariaDB服务器。
sudo mysql -u root
然后检查 phpmyadmin
用户。
show grants for [email protected];
输出:
如您所见,用户 phpmyadmin
对数据库拥有所有特权 phpmyadmin
。 现在您可以执行以下命令退出:
exit;
步骤2:从子目录访问phpMyAdmin
安装phpMyAdmin时,将配置文件放置在 /etc/apache2/conf-enabled/phpmyadmin.conf
,它使我们可以通过子目录访问phpMyAdmin。 如果您已在同一Ubuntu 18.04服务器上安装了其他Web应用程序(如WordPress),则只需添加 /phpmyadmin
在浏览器地址栏中输入您的域名之后。
your-domain.com/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
现在您可以使用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
在登录表单中输入用户凭据之前,让我们启用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证书,如以下消息所示。
步骤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
帐户并管理所有数据库。
步骤6:安装最新稳定版本的phpMyAdmin
Ubuntu 18.04存储库随附PHP7.2和phpMyAdmin 4.6.6。 您可以在浏览器标题栏中检查您的phpMyAdmin版本。
但是,自版本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,这是4.8版中新增的功能。 要启用它,请登录phpMyAdmin。 然后去 Settings
-> Two-factor authentication
然后选择 身份验证应用程序(2FA)。
单击后 配置两因素身份验证 按钮,系统会显示一个QR码,您需要使用手机上的两因素身份验证应用程序对其进行扫描。
Google Authenticator是一个受欢迎的2FA应用程序,但我推荐FreeOTP,它是由Red Hat开发的开源2FA应用程序。 输入2FA应用程序生成的身份验证代码后,就会启用两因素身份验证。 如果现在注销并重新登录,则除了用户名和密码外,还需要输入验证码。
包起来
我希望本教程可以帮助您在Ubuntu 18.04上使用LAMP安装phpMyAdmin。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂