Ubuntu 18.04上安装 phpMyAdmin的详细教程
我们将安装 phpMyAdmin 在 Ubuntu18.04 上配合 Apache 一起工作.
在安装 phpMyAdmin 之前需要已经安装了LAMP栈并提供了web页面.
如果没有安装可以参照 Ubuntu 18.04上安装Apache,MySQL,PHP 来先安装.
1. 安装 phpMyAdmin
让我们从更新包列表开始,并在Ubuntu 18.04上安装phpMyAdmin。下面我们有两个用&&分隔的命令。第一个命令将更新包列表,以确保您获得phpMyAdmin的最新版本和依赖项。第二个命令将下载并安装phpMyAdmin。当要求继续时,按 y 并 回车。
$ sudo apt update && sudo apt install phpmyadmin
根据您的设置,phpMyAdmin包配置中以下屏幕的顺序可能有所不同。
如果提示您选择web服务器,请按SPACE键在apache2旁边放一个星号[*],然后按TAB键突出显示OK并按ENTER键.如下图:
回车后如下:
选择 Yes 并按 ENTER 来安装和配置数据库。
MySQL应用程序密码只在phpMyAdmin内部使用,用于与MySQL通信。您可以保留此空白,密码将自动生成。按回车键继续。
2. 测试 phpMyAdmin
现在,您应该能够通过访问服务器的域名或公共IP地址和 /phpMyAdmin来访问phpMyAdmin web界面。例如:http://example.com/phpmyadmin或http://192.168.1.10 phpmyadmin 如果你还没有一个域名或不知道你的IP,你可以通过下面命令找到:
$ sudo service apache2 status
第一次安装MySQL时,您需要设置根用户和密码。但是,根用户可能禁用远程登录。 如果您得到一个错误“用户’ root ‘ @ ‘ localhost’的访问被拒绝”,您应该继续执行步骤3,为phpMyAdmin创建一个超级用户。
3. 创建 MySQL 用户
如果您不能以上面的 root 用户身份登录,您现在可以为phpMyAdmin创建一个超级用户帐户。 在终端,以 root 用户身份登录MySQL。您可能在第一次安装MySQL时创建了一个根密码, 或者密码是空白的,在这种情况下,您可以在提示输入密码时按 ENTER。
$ sudo mysql -p -u root
现在用您选择的用户名添加一个新的MySQL用户。在本例中,我们将其称为 pmauser (php my admin user)。 确保将 password_here 替换为您自己的密码(自己造一个密码)。 % 符号告诉MySQL允许该用户从远程的任何地方登录。如果你想提高安全性,你可以用一个IP地址来代替它。
CREATE USER 'pmauser'@'%' IDENTIFIED BY 'password_here';
我这里设置的密码是 123456 这个是弱密码(很容易就被猜到), 不建议大家使用这个密码.
现在,我们将向新用户pmauser授予超级用户权限。
GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'%' WITH GRANT OPTION;
现在退出MySQL。
exit
现在,您应该能够使用这个新用户帐户访问phpMyAdmin。 如果您想为phpMyAdmin设置一些额外的安全性,请继续下一步。
4. 模糊 phpMyAdmin URL
机器人和攻击者不断扫描web服务器,寻找默认的phpMyAdmin登录页面,因此建议您将URL更改为其他内容。 在本例中,我们将把它从 example.com/phpmyadmin 更改为 example.com/pmahidden 。 使用 vi 文本编辑器打开Apache的phpMyAdmin配置文件。(如果不习惯 vi, 推荐可视化文本编辑器 gedit )
$ sudo ifconfig | grep -Eo 'inet (addr:)?([0-9]*.){3}[0-9]*' | grep -Eo '([0-9]*.){3}[0-9]*' | grep -v '127.0.0.1'
将 Alias (别名)从 /phpmyadmin 更改为 /pmahidden – 您也可以将其更改为您想要的任何内容。
保存并退出 vi. 现在必须重新加载Apache服务,以使更改生效。
$ sudo vi /etc/apache2/conf-available/phpmyadmin.conf
您现在应该能够通过 example.com/pmahidden 访问 phpMyAdmin
5. 用 .htpasswd 进行保护
我们可以使用 .htpasswd 进一步保护 phpMyAdmin 登录页面。这又增加了一条抵御机器人和黑客的防线。
5.1 允许. htaccess 覆盖
要设置.htpasswd,我们必须首先更改phpMyadmin Apache配置文件,以允许.htaccess覆盖。 使用 vi 打开配置文件 phpmyadmin.conf
$ sudo vi /etc/apache2/conf-available/phpmyadmin.conf
在 DirectoryIndex index.php 下面添加 AllowOverride All 如下图:
保存并且退出 vi 现在重新加载Apache服务。
$ sudo service apache2 reload
5.2 设置 .htpasswd
我们将使用 gedit 文本编辑器在 phpMyAdmin 安装目录中创建一个新的 .htaccess 文件。
$ sudo gedit /usr/share/phpmyadmin/.htaccess
粘贴以下内容到 .htaccess 文件.
AuthType Basic
AuthName "Restricted Access"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
点击 Save 按钮保存, 并点击关闭按钮退出. 现在,我们可以使用 htpasswd 工具生成 .htpasswd 文件。
在本例中,我们创建了一个名为pmauser (php my admin user)的新用户,尽管您可以将其更改为您想要的任何内容。
$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd pmauser
您将被要求输入一个新的密码两次(生成一个密码)。 完成之后, 现在您可以在浏览器中访问 phpMyAdmin, 现在应该会提示您输入登录细节。
参考:Installing phpMyAdmin for Apache on Ubuntu 18.04
- 使用Excel调用ABAP系统的函数
- 如何计算并测量ABAP及Java代码的环复杂度Cyclomatic complexity
- 漫谈版本控制系统
- 带你零基础入门express
- 动态控制C4C UI元素的显示和隐藏
- 深度学习(deep learning)发展史
- 遗传算法简述
- Spark详解03Job 物理执行图Job 物理执行图
- 干货|Kotlin入门第一课:从对比Java开始
- Spark详解04Shuffle 过程Shuffle 过程
- Spark详解02Job 逻辑执行图Job 逻辑执行图
- Spark详解01概览|Spark部署|执行原理概览Job 例子
- Spark详解05架构Architecture架构
- SQL Server常用命令(平时不用别忘了)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- types 和 @types 是什么?
- 一次绕过waf进行xss的经历
- opencv+python制作硬核七夕礼物
- 身份验证器是如何验证我们的身份?
- 谷歌开源NLP模型可视化工具LIT,模型训练不再「黑箱」
- MongoDB 案例:Document failed validation 错误
- 利用GoogleAppsScript自动回复短信实现保号
- 用php来查询graphql
- 利用树莓派的摄像模块实现“扫码枪”
- n ../../node_modules/@storybook/channels/dist/index.d.ts:25:9 - error TS1086: An accessor cannot ...
- 要不来重新认识Spring事务?三歪又学到了
- 读者问:学完SSM,该学什么呢?
- go-zero 微服务框架介绍
- redis-cli 未找到命令的一个解决方式
- 【每日一题】42. Trapping Rain Water