Linux实验记录:使用Apache服务部署静态网站

前言:

本文是一篇关于Linux系统初学者的实验记录。

参考书籍:《Linux就该这么学》

实验环境:

VmwareWorkStation 17——虚拟机软件

RedHatEnterpriseLinux[RHEL]8——红帽操作系统

目录

前言:

备注:

正文:

实验1:安装Apache程序

Step1:把系统镜像挂载到/media/cdrom目录

Step2:使用Vim文本编辑器创建软件仓库的配置文件

Step3:安装Apache服务程序

Step4:启用httpd服务程序并将其加入到开机启动项

 实验2:配置服务参数文件:修改保存网站数据的目录 

Step1:建立网站数据的保存目录,并创建首页文件

Step2:打开httpd服务程序的主配置文件,并修改:

Step3:重启httpd服务程序并验证效果

​实验3:SELinux安全子系统

Step1:验证前文中权限不足是由于SELinux而导致的 

Step2:semanage命令

Step3:向新的网站数据目录中新添加一条SELinux安全上下文

实验4:个人用户主页功能

Step1:编辑配置文件,开启个人用户主页功能

 step2:在用户家目录中建立用于保存网站数据的目录及首页文件

Step3:查看SELinux域安全策略

实验5:在网站中添加密码功能

Step1:使用htpasswd命令生成密码数据库

Step2:继续编辑个人用户主页功能的配置文件


备注:

 Web网络服务,一般是指允许用户通过浏览器访问互联网中各种资源的服务。

Web网络服务是一种被动访问的服务程序,只有接收到互联网中其他主机发出的请求后才会相应,最终用于提供服务程序的Web服务器会通过HTTP或HTTPS把请求的内容传送給用户。

目前能提供Web网络服务的程序有:IIS、Nginx和Apache等

IIS(Internet Information Service,互联网信息服务)是Windows系统中默认的Web服务程序。

Nigix程序作为一款轻量级的网站服务软件,有好的稳定性和丰富的功能。

Apache程序是RHEL5、6、7、8系统中默认的Web服务程序,名字取自美国印第安人的土著语,寓意为“拥有高超的作战策略和无穷的耐性”。

正文:

实验1:安装Apache程序

Step1:把系统镜像挂载到/media/cdrom目录

Step2:使用Vim文本编辑器创建软件仓库的配置文件

Step3:安装Apache服务程序

Step4:启用httpd服务程序并将其加入到开机启动项

打开firefox,访问127.0.0.1(测试页面) 

 

 实验2:配置服务参数文件:修改保存网站数据的目录 

在Linux系统中配置服务,其实就是修改服务的配置文件。

Linux系统中的配置文件:

作用文件名称
服务目录/etc/httpd
主配置文件/etc/httpd/conf/httpd.conf
网站数据目录/var/www/html
访问日志/var/log/httpd/access_log
错误日志/var/log/httpd/error_log

 主配置文件中保存的是最重要的服务参数

在主配置文件中,存在上中类型的信息:注释行信息、全局配置、区域配置

全局配置参数可以用于所有的子站点,区域配置参数则是单独针对每个独立的子站点进行设置的。

配置httpd服务程序时最常用的参数以及用途描述:

参数作用
ServerRoot服务目录
ServerAdmin管理员邮箱
User运行服务的用户
Group运行服务的用户组
ServerName网站服务器的域名
DocumentRoot网站数据目录
Listen监听的IP地址与端口号
DirectoryIndex默认的索引页页面
ErrorLog错误日志文件
CustomLog访问日志文件
Timeout网页超时时间,默认300秒

由表可知:Document参数用于定义网站数据的保存路径,参数默认值/var/www/html

当前网站普遍的首页名称是index.html。

尝试修改网页内容,并在firefox中查看:

Step1:建立网站数据的保存目录,并创建首页文件

Step2:打开httpd服务程序的主配置文件,并修改:

Step3:重启httpd服务程序并验证效果

 此时会提示权限不足,需要修改SELinux策略。

实验3:SELinux安全子系统

SELinux(Security-Enhanced Linux)是美国国家安全局在Linux开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。

Linux系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。

它能够从多方面监控违法行为:

对服务程序的功能进行限制(SELinux域限制可以确保服务程序做不了出格的事情)

对文件资源的访问进行限制(SELinux安全上下文确保文件资源只能被其所属的服务程序访问)

系统内的服务程序只能规规矩矩地拿到自己所应该获取的资源

这样即使系统遭到入侵,也无法利用系统内的服务程序进行越权操作。

SELinux服务有3种配置模式:

enforcing:强制启用安全策略模式,将拦截服务的不合法请求

permissive:遇到服务越权访问时,只发出警告而不强制拦截

disabled:对于越权的行为不警告也不拦截

本实验回在强制启用安全策略模式下进行:

 使用getenforce命令获取当前SELinux服务的运行模式:

Step1:验证前文中权限不足是由于SELinux而导致的 

关闭SELinux服务后再查看网页: 

 

httpd服务的程序功能是允许用户访问访问网站内容,因此SELinux肯定会默认放行用户对网站的请求操作。但是刚刚网站数据的默认保存目录被修改为/home/wwwroot,这是普通用户的家目录,这违反了SELinux的监管原则。 

验证:

恢复SELinux服务到启用安全策略模式,分别查看原始网站数据的保存目录与当前网站数据的保存目录是否拥有不同的SELinux安全上下文值。

Step2:semanage命令

semanage命令是用于管理SELinux的策略,英文全称”SELinux manage“。

语法格式:semanage [参数][文件]

SELinux服务极大地提升了Linux系统的安全性,将用户权限牢牢地锁在笼子里。

不仅能像传统的chcon命令那样设置文件、目录的策略,还能够管理网络接口、消息接口

semanage命令中常用的参数以及作用:

参数作用
-l查询
-a添加 
-m修改
-d删除

Step3:向新的网站数据目录中新添加一条SELinux安全上下文

设置立即生效:

再次尝试访问:

允许访问,此时SELinux启用中。

 养成将所需服务添加到开机启动项中的习惯:

实验4:个人用户主页功能

如果想在系统中为每位用户建立一个独立的网站,通常的方法是基于虚拟网站主机功能来部署多个网站。

httpd服务程序提供的个人用户主页功能可以完全胜任这个工作。

该功能可以让系统内所有用户在自己的家目录管理个人网站,访问起来非常容易。

Step1:编辑配置文件,开启个人用户主页功能

 step2:在用户家目录中建立用于保存网站数据的目录及首页文件

还需修改家目录的权限为755,保证其他人也有权限读取里面的内容。

重新启动httpd服务程序,在浏览器地址栏输入网址

格式:”网址/~用户名" 

Step3:查看SELinux域安全策略

报错原因:

该用户的网站数据目录本身就是存放到与这个用户对应的家目录中的,所以不需要修改家目录的SELinux安全上下文。

考虑SELinux域的概念:SELinux域确保服务程序不能执行违规的操作

httpd服务中突然开启的这项个人用户主页功能是否被SELinux域默认允许过?

实验验证:

使用getsebool命令查询并过滤出所有HTTP协议相关的安全策略。

使用setsebool命令来修改SELinux策略中各条规则的布尔值。

setsebool命令要加-P参数,让修改后的策略规则永久立即生效。

再次查看网页:

实验5:在网站中添加密码功能

网站的拥有者并不希望直接将网页内容显示出来,而只想让通过身份验证的用户看到里面的内容,这时就可以在网站中添加密码功能。

Step1:使用htpasswd命令生成密码数据库

-c参数表示第一次生成;后边是添加密码数据库的存放文件;验证要用到的用户名称 

Step2:继续编辑个人用户主页功能的配置文件

尝试登录网站:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/663679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言进阶篇】assert宏 使用详解

文章目录 一、assert简介 二、assert使用方法和规则 2.1 头文件 2.2 原型 2.3 功能 2.4 示例 2.5 assert的打开与关闭 三、注意事项 3.1 运行效率问题 3.2 assert只适用于调试版本 3.3 资源释放与清理 3.4 过度依赖 四、总结 个人主页: 倔强的石头的…

氢气传感器报警值:守护实验室安全的隐形卫士

随着科技的发展,我们的生活变得越来越便捷,但是与此同时,安全问题也日益凸显。其中,氢气作为一种清洁能源,被广泛应用于各个领域,但是如果不加以控制,氢气泄漏也可能带来严重的安全隐患。因此&a…

柔性电流探头方向判断有哪些方法?干货分享!

柔性电流探头方向判断的方法干货分享!从理论到实践,助您成为专业人士!干货收藏,快看起来吧!      柔性电流探头方向判断一直是电力行业测试中的关键问题之一,确切地判断电流方向对于测试电力系统的稳定…

Docker部署xxl-job调度器并结合SpringBoot测试

文章目录 一、Docker部署1. 创建数据库2. 启动容器3. 访问4. 新建执行器 二、SpringBoot整合1. 模块注册到执行器2. 创建配置类3. 启动测试 三、任务发布-普通任务1. 编写任务代码2. 创建任务3. 启动任务 四、任务发布-分片任务1. 编写任务代码2. 启动多个实例3. 创建任务4. 启…

CTF特训(二):青少年CTF-MISC部分WP

FLAG:当觉得自己很菜的时候,就静下心来学习 专研方向:MISC,CTF 每日emo:听一千遍反方向的钟,我们能回到过去吗? CTF特训(二):青少年CTF-MISC部分WP: 文章目录 CTF特训(二)&#xff1…

IDEA开发使用 thymeleaf 模板$表达式报红波浪线解决方案

系列文章目录 文章目录 系列文章目录后端存值前端取值thymeleaf 后端存值 RequestMapping("/testModelAndView")//使用ModelAndView时返回的方法类型必须是ModelAndViewpublic ModelAndView testModelAndView() {//创建ModelAndView对象ModelAndView mav new Model…

QT播放gstreamer命令(三)---使用QMediaPlayer

前文: 因为之前听说过,QMediaPlayer已经集成了gstreamer,但是并没有什么接口来例子来说明,根本看不出来有任何gstreamer的形式,于是在QT5助手里面搜了一下,发现确实有gstreamer的痕迹,但是例子写…

谷歌浏览器网站打不开,显示叹号

问题: 您与此网站之间建立的连接不安全请勿在此网站上输入任何敏感信息(例如密码或信用卡信息),因为攻击者可能会盗取这些信息。 了解详情 解决方式: 网上有很多原因,亲测为DNS问题,设置&…

Qt之窗口位置

Qt提供了很多关于获取窗体位置及显示区域大小的函数,如x(),y()和pos(),rect(),size(),geometry()等,统称为"位置相关函数"或"位置函数"。几种主要位置函数及其之…

第0章 Linux 基础入门

第0章 Linux 基础入门 RHCSA Red Hat Certified System Administrator 红帽认证系统管理员。 什么是计算机 计算机的组成: 控制器 运算器 存储器 输出设备 输入设备 计算机只能识别0和1,也就是二进制数。 为什么要学习Linux Linux 因其高效率…

Python||五城P.M.2.5数据分析与可视化_使用华夫图分析各个城市的情况(上)

目录 五城P.M.2.5数据分析与可视化——北京市、上海市、广州市、沈阳市、成都市,使用华夫图分析各个城市的情况 1.北京市的空气质量 2.广州市的空气质量 【上海市和成都市空气质量情况详见下期】 五城P.M.2.5数据分析与可视化——北京市、上海市、广州市、沈阳市、成…

重发布

一:作用 在两种路由协议之间,或者一个协议的不同进程之间,借助ASBR (同时工作在两种协议或 者协 议的不同进程中)学习到两个网络的路由信息,并且通过重发布进行路由共享,最终实现全网可 达。…

大模型实践笔记(1)——GLM-6B实践

目录 在Ubuntu上的配置Git Large File Storage 安装Git LFS: 设置Git LFS: 使用Git LFS: 安装GLM-6B 环境依赖 ChatGLM2-6B介绍 配置GLM 下载代码 构建环境 安装依赖 本地部署 网页UI 很多模型在hugging face上面,…

知识库系统为什么优秀企业都必备?这篇文章告诉你

在今天的商业世界中,知识就是力量。企业里的每一个小小的灵感、想法、经验,都可能是推动业务增长的源泉。那么,如何系统地管理和使用这些宝贵的知识资源呢?答案就是——知识库系统。 那么,什么是知识库系统呢&#xf…

六、Nacos源码系列:Nacos健康检查

目录 一、简介 二、健康检查流程 2.1、健康检查 2.2、客户端释放连接事件 2.3、客户端断开连接事件 2.4、小结 2.5、总结图 三、服务剔除 一、简介 Nacos作为注册中心不止提供了服务注册和服务发现的功能,还提供了服务可用性检测的功能,在Nacos…

【面试深度解析】快手后端一面:G1、IOC、AOP、并发、JVM生产问题定位、可重复读、ThreadLocal

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

代码随想录算法训练营第38天 | 动态规划理论基础 509.斐波那契数 70.爬楼梯 746.使用最小花费爬楼梯

动态规划理论基础 动态规划适用于解决有重叠子问题的问题。所以动态规划中的每一个状态一定是由上一个状态推导来的,这一点区分于贪心,因为贪心每一步总是取局部最优。 解题步骤: 确定dp数组的含义确定递推表达式dp数组如何初始化确定遍历顺…

图像处理之《可逆重缩放网络及其扩展》论文精读

一、文章摘要 图像重缩放是一种常用的双向操作,它首先将高分辨率图像缩小以适应各种显示器或存储和带宽友好,然后将相应的低分辨率图像放大以恢复原始分辨率或放大图像中的细节。然而,非单射下采样映射丢弃了高频内容,导致逆恢复…

LVGL部件6

一.圆弧部件 1.知识概览 2.函数接口 1.lv_obj_clear_flag 在 LVGL(LittlevGL)中,lv_obj_clear_flag 函数用于清除对象的特定标志位。该函数的原型如下: void lv_obj_clear_flag(lv_obj_t * obj, lv_obj_flag_t flag);obj 是指…

[力扣 Hot100]Day20 旋转图像

题目描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 出处 思路 旋转时每四个位置为一组进行swap操作,找好对…