当前位置: 首页 > news >正文

在Ubuntu 14.04上安装和保护phpMyAdmin的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

简介

虽然许多用户需要像 MySQL 这样的数据库管理系统的功能,但他们可能不太习惯仅通过 MySQL 提示符与系统进行交互。

phpMyAdmin 的创建是为了让用户可以通过 Web 界面与 MySQL 进行交互。在本指南中,我们将讨论如何安装和保护 phpMyAdmin,以便您可以安全地在 Ubuntu 14.04 上使用它来管理数据库。

先决条件

在开始本指南之前,您需要完成一些基本步骤。

首先,我们假设您正在使用具有 sudo 特权的非根用户,就像在 Ubuntu 14.04 的初始服务器设置的步骤 1-4 中描述的那样。

我们还假设您已经在 Ubuntu 14.04 服务器上完成了 LAMP(Linux、Apache、MySQL 和 PHP)安装。如果尚未完成此步骤,您可以按照此指南在 Ubuntu 14.04 上安装 LAMP 堆栈。

完成这些步骤后,您就可以开始本指南了。

步骤一 — 安装 phpMyAdmin

要开始,我们可以简单地从默认的 Ubuntu 软件仓库中安装 phpMyAdmin。

我们可以通过更新本地软件包索引,然后使用 apt 软件包系统从系统中拉取文件并安装它们来完成这一点:

sudo apt-get update
sudo apt-get install phpmyadmin

这将要求您回答一些问题,以便正确配置您的安装。

  • 对于服务器选择,选择 apache2
  • 当询问是否使用 dbconfig-common 来设置数据库时选择 yes
  • 然后会提示您输入数据库管理员的密码
  • 然后会要求您选择并确认 phpMyAdmin 应用程序本身的密码

安装过程实际上将 phpMyAdmin Apache 配置文件添加到 /etc/apache2/conf-enabled/ 目录中,系统会自动读取该文件。

我们唯一需要做的是显式启用 php5-mcrypt 扩展,可以通过输入以下命令来完成:

sudo php5enmod mcrypt

之后,您需要重新启动 Apache 以使更改生效:

sudo service apache2 restart

现在,您可以通过访问服务器的域名或公共 IP 地址后跟 /phpmyadmin 来访问 Web 界面:

http://<span class="highlight">domain_name_or_IP</span>/phpmyadmin

!phpmyadmin 登录界面

您现在可以使用 root 用户名和您在 MySQL 安装过程中设置的管理密码登录到界面。

登录后,您将看到用户界面,类似于这样:

!phpmyadmin 用户界面

步骤二 — 安全化您的 phpMyAdmin 实例

我们能够相当轻松地启动并运行我们的 phpMyAdmin 界面。但我们还没有完成。由于其普及性,phpMyAdmin 是攻击者的热门目标。我们需要保护应用程序,以帮助防止未经授权的使用。

其中一种最简单的方法是在整个应用程序前面放置一个网关。我们可以使用 Apache 内置的 .htaccess 身份验证和授权功能来实现这一点。

配置 Apache 允许 .htaccess 覆盖

首先,我们需要编辑我们的 Apache 配置文件,以启用 .htaccess 文件覆盖。

我们将编辑已放置在我们的 Apache 配置目录中的链接文件:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

我们需要在配置文件的 <Directory /usr/share/phpmyadmin> 部分中添加一个 AllowOverride All 指令,如下所示:

<Directory /usr/share/phpmyadmin>Options FollowSymLinksDirectoryIndex index.php<span class="highlight">AllowOverride All</span>. . .

添加了这一行后,保存并关闭文件。

要实施您所做的更改,重新启动 Apache:

sudo service apache2 restart

创建 .htaccess 文件

现在我们已经启用了 .htaccess 用于我们的应用程序,我们需要创建一个文件来实际实施一些安全性。

为了使此操作成功,必须在应用程序目录中创建该文件。我们可以通过输入以下命令以 root 特权创建必要的文件并在文本编辑器中打开它:

sudo nano /usr/share/phpmyadmin/.htaccess

在此文件中,我们需要输入以下信息:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

让我们来看看每行的含义:

  • AuthType Basic:此行指定我们正在实施的身份验证类型。此类型将使用密码文件实现密码身份验证。
  • AuthName:这为身份验证对话框设置消息。您应该保持此消息通用,以便未经授权的用户不会获得有关受保护内容的任何信息。
  • AuthUserFile:这设置将用于身份验证的密码文件的位置。这应该在正在提供服务的目录之外。我们将很快创建此文件。
  • Require valid-user:这指定只有经过身份验证的用户才能访问此资源。这实际上阻止了未经授权的用户进入。

完成后,保存并关闭文件。

创建用于身份验证的 .htpasswd 文件

现在我们已经通过在 .htaccess 文件中使用 AuthUserFile 指令指定了密码文件的位置,我们需要创建这个文件。

实际上,我们需要安装一个额外的软件包来完成这个过程。我们可以从默认仓库中安装它:

sudo apt-get install apache2-utils

安装完成后,我们将可以使用 htpasswd 实用程序。

我们选择的密码文件位置是 “/etc/phpmyadmin/.htpasswd”。让我们通过以下命令创建这个文件并为其传递一个初始用户:

sudo htpasswd -c /etc/phpmyadmin/.htpasswd <span class="highlight">用户名</span>

系统会提示您选择并确认要为所创建的用户设置的密码。之后,文件将以您输入的哈希密码创建。

如果您想输入另一个用户,您需要不要使用 -c 标志,像这样:

sudo htpasswd /etc/phpmyadmin/.htpasswd <span class="highlight">额外用户</span>

现在,当您访问您的 phpMyAdmin 子目录时,系统将提示您输入刚刚配置的额外帐户名和密码:

http://<span class="highlight">域名或IP</span>/phpmyadmin

在输入 Apache 身份验证信息后,您将被带到常规的 phpMyAdmin 身份验证页面,以输入您的其他凭据。这将增加额外的安全层,因为 phpMyAdmin 在过去曾遭受过漏洞的影响。

结论

您现在应该已经在您的 Ubuntu 14.04 服务器上配置好了 phpMyAdmin 并准备好使用。通过这个界面,您可以轻松地创建数据库、用户、表等,并执行删除和修改结构和数据等常规操作。

要了解如何通过使用 SSL 加密与服务器的交互以进一步保护安全,请查看我们关于如何在 phpMyAdmin 中设置 SSL 证书的文章。

相关文章:

在Ubuntu 14.04上安装和保护phpMyAdmin的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 虽然许多用户需要像 MySQL 这样的数据库管理系统的功能&#xff0c;但他们可能不太习惯仅通过 MySQL 提示符与系统进行交互。 ph…...

突破与创新:Vue.js 创始人 尤雨溪 2024 年度技术前瞻

本文将深入探讨以下主题的 尤雨溪 见解&#xff1a;Vite 5对Vue的影响、宏、vapor模式、常见误解、新特性或功能、未来版本对Option API的支持、VitePress等。 . 2.尤大的问答环节 2.1. Vite 5如何提升Vue的性能&#xff1f; Vite在提高性能方面的工作通常是针对Vite本身的。然…...

LeetCode 441, 57, 79

目录 441. 排列硬币题目链接标签思路代码 57. 插入区间题目链接标签思路两个区间的情况对每个区间的处理最终的处理 代码 79. 单词搜索题目链接标签原理思路代码 优化思路代码 441. 排列硬币 题目链接 441. 排列硬币 标签 数学 二分查找 思路 由于本题所返回的 答案在区间…...

【排序 - 插入排序 和 希尔排序】

插入排序&#xff08;Insertion Sort&#xff09;是一种简单直观的排序算法&#xff0c;它的工作原理是逐步构建有序序列。在排序过程中&#xff0c;它将未排序的元素逐个插入到已排序的部分中&#xff0c;从而在每次插入时扩展已排序序列的长度。 原理介绍 插入排序的基本思…...

Java使用 MyBatis-Plus 的 OR

Java使用 MyBatis-Plus 的 OR 一、前言1. 简介2. OR 查询2.1 基础 OR 查询2.2 使用 Lambda 表达式简化 二、总结 一、前言 学习使用 MyBatis-Plus 的 OR 及高级语句是提升数据库操作效率和灵活性的关键步骤。MyBatis-Plus 是 MyBatis 的增强工具包&#xff0c;提供了许多便捷的…...

[Linux]CentOS软件的安装

一、Linux 软件包管理器 yum 1.Linux安装软件的方式 在linux中安装软件常用的有三种方式&#xff1a; 源代码安装&#xff08;我们还需要进行编译运行后才可以&#xff0c;很麻烦&#xff09; rpm安装&#xff08;Linux的安装包&#xff0c;需要下载一些rpm包&#xff0c;但是…...

4000厂商默认账号密码、默认登录凭证汇总.pdf

获取方式&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1F8ho42HTQhebKURWWVW1BQ?pwdy2u5 提取码&#xff1a;y2u5...

RK3568笔记三十六:LED驱动开发(设备树)

若该文为原创文章&#xff0c;转载请注明原文出处。 记录使用设备树编写一个简单的 LED 灯驱动程序 一、编程思路 程序编写的主要内容为添加 LED 灯的设备树节点、在驱动程序中使用 of 函数获取设备节点中的 属性&#xff0c;编写测试应用程序。 • 首先向设备树添加 LED 设备…...

AC修炼计划(AtCoder Regular Contest 180) A~C

A - ABA and BAB A - ABA and BAB (atcoder.jp) 这道题我一开始想复杂了&#xff0c;一直在想怎么dp&#xff0c;没注意到其实是个很简单的规律题。 我们可以发现我们住需要统计一下类似ABABA这样不同字母相互交替的所有子段的长度&#xff0c;而每个字段的的情况有&#xff…...

云计算练习题

第一题&#xff1a;每周日晚上11点59分需要将/data目录打包压缩到/mnt目录下并以时间命名 #crontab -e 59 23 * * 7 /bin/tar czvf /mnt/date %F-data.tar.gz /data 59 23 * * 7 /bin/tar czvf /mnt/date %T.tar.gz /data 第二题&#xff1a;查找出系统中/application目录下所有…...

《战甲神兵》开发者报告:游戏崩溃问题80%发生在Intel可超频酷睿i9处理器上——酷睿i7 K系列CPU也表现出高崩溃率

在Intel持续面临第13代和第14代CPU崩溃问题的背景下&#xff0c;近日&#xff0c;《战甲神兵》(Warframe)的开发者们于7月9日披露了游戏崩溃的统计数据&#xff0c;并描述了诊断该问题的过程。根据开发团队的说法&#xff0c;一名未进行超频且使用全新PC的员工&#xff0c;即便…...

Postman下载及使用说明

Postman使用说明 Postman是什么&#xff1f; ​ Postman是一款接口对接工具【接口测试工具】 接口&#xff08;前端接口&#xff09;是什么&#xff1f; ​ 前端发送的请求普遍被称为接口 ​ 通常有网页的uri参数格式json/key-value请求方式post/get响应请求的格式json 接…...

什么是im即时通讯?WorkPlus im即时通讯私有化部署安全可控

IM即时通讯是Instant Messaging的缩写&#xff0c;指的是一种实时的、即时的电子信息交流方式&#xff0c;也被称为即时通讯。它通过互联网和移动通信网络&#xff0c;使用户能够及时交换文本消息、语音通话、视频通话、文件共享等信息。而WorkPlus im即时通讯私有化部署则提供…...

hnust 1794: 机器翻译

hnust 1794: 机器翻译 题目描述 小晨的电脑上安装了一个机器翻译软件&#xff0c;他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单&#xff0c;它只是从头到尾&#xff0c;依次将每个英文单词用对应的中文含义来替换。对于每个英文单词&#xff0c;软件会先在内存…...

AI人工智能开源大模型生态体系分析

人工智能开源大模型生态体系研究 "人工智能开源大模型生态体系研究报告v1.0"揭示&#xff0c;AI(A)的飞速发展依赖于三大核心&#xff1a;数据、算法和算力。这一理念已得到业界广泛认同&#xff0c;三者兼备才能推动AI的壮大发展。随着AI大模型的扩大与普及&#xf…...

ArkTS学习笔记_封装复用之@Styles装饰器

ArkTS学习笔记_封装复用之Styles装饰器 背景&#xff1a; 在开发中&#xff0c;如果每个组件的样式都需要单独设置&#xff0c;就会出现大量代码在进行重复样式设置&#xff0c;虽然可以复制粘贴&#xff0c;但为了代码简洁性和后续方便维护&#xff0c;给出的思路是&#xff…...

根据vue学习react

react的函数式组件与vue2是很像的 一、基础类似点 1、组件下拥有一个根节点&#xff0c;vue2是template&#xff0c;react是幽灵标签<> 2、vue2是{{}}以及v-model&#xff0c;react的绑定是{} 3、vue2编译html是v-html&#xff0c;react是{}&#xff0c;并且react的jsx中…...

Hi3861 OpenHarmony嵌入式应用入门--HTTPD

httpd 是 Apache HTTP Server 的守护进程名称&#xff0c;Apache HTTP Server 是一种广泛使用的开源网页服务器软件。 本项目是从LwIP中抽取的HTTP服务器代码&#xff1b; Hi3861 SDK中已经包含了一份预编译的lwip&#xff0c;但没有开启HTTP服务器功能&#xff08;静态库无法…...

MICS2024|少样本学习、多模态技术以及大语言模型在医学图像处理领域的研究进展|24-07-14

小罗碎碎念 本期推文主题 今天的会议很多主题都集中在大模型、多模态这两个方面&#xff0c;很明显&#xff0c;这两个方向都是目前的研究热点。 所以&#xff0c;我这一期推文会先简单的分析一下秦文健&#xff08;中科院&#xff09;和史淼晶&#xff08;同济大学&#xff09…...

ConfigMap-secrets-静态pod

一.ConfigMap 1.概述 ConfigMap资源&#xff0c;简称CM资源&#xff0c;它生成的键值对数据&#xff0c;存储在ETCD数据库中 应用场景&#xff1a;主要是对应用程序的配置 pod通过env变量引入ConfigMap&#xff0c;或者通过数据卷挂载volume的方式引入ConfigMap资源 官方解释…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...