《linux就该这么学》第十二节课:第10章,Apache网站服务
第十章


10.1、网站服务程序
(让用户能够通过网站访问服务器上的资源)
目前提供的网站服务有IIS,Nginx,Apache等,IIS是windows中默认的web服务程序。
Nginx是后起之秀,有多种优势,但RHEL7中默认的是Apache,市场大部门还是Apache,所以我们学习Apache。
Apache是老牌服务,具有庞大的市场,Nginx则是新兴的服务

1、挂载系统镜像
mount /dev/cdrom /media/cdrom
2、配置yum仓库
[rhel] //识别码
name=rhel //名字
baseurl=file:///media/cdrom //路径
enabled=1 //开启
gpgcheck=0 //不校验
3、安装Apache,yum install httpd
//Apache的软件包名称为httpd
4、启用httpd服务,并加入到开机启动项中
systemctl restart httpd
systemctl enable httpd
然后我们打开浏览器输入本机的地址,会显示下面界面,证明网站服务成功运行:

当看到上述页面后,有两个原因:
1、网站内没有目录
2、权限不足
10.2、配置服务文件参数
httpd的服务文件的位置:
服务目录: /etc/httpd
主配置文件: /etc/httpd/conf/httpd.conf //最重要的配置参数
网站数据目录: /var/www/html
访问日志: /var/log/httpd/access_log
错误日志: /var/log/httpd/error_log

以下是配置文件中各字段的解释:
ServerRoot //服务目录
ServerAdmin //管理员邮箱
User //运行服务的用户
Group //运行服务的用户组
ServerName //网站服务器的域名
DocumentRoot // 网站数据目录
Listen //监听的IP地址与端口号
DirectoryIndex //默认的索引页页面
ErrorLog //错误日志文件
CustomLog //访问日志文件
Timeout //网页超时时间,默认为300秒
当上述字段更改时,我们可能会触及到安全的限制,就是selinux
10.3、SElinux安全子系统
selinux安全子系统,是保障服务都只进行自己的本质工作,而杜绝做其他的不属于自己的工作。
selinux:对服务程序的功能进行限制(域限制),对文件资源的访问限制(安全上下文)
域:管理服务的功能
安全上下文:让服务只能访问该访问的文件
selinux有三种配置模式:
enforcing:强制启用安全策略模式,拦截服务不合法请求。
permissive:遇到服务越权访问时,只发警告不拦截。
disabled:对越权行为不警告不拦截。
以下是selinux相关的命令:
getenforce和setenforce相当于selinux的总开关,0为关,1为开
getenfoece //查询selinux的状态
setenforce //修改selinux的状态,例如:setenforce 0

针对selinux的安全上下文:
可使用 ls -Z 来查询文件的安全上下文
semanage 修改和查询selinux的安全上下文。semanage 【选项】【文件】
-l //参数用于查询 -a //用于添加
-m //用于修改 -d //用于删除
-t //类型 fcontext 表示修改安全上下文
例: semanage -a -t httpd_sys_content_t /home/wwwroot

restorecon 用于修改的上下文立即生效
-R //递归操作,针对目录 -i //忽略不存在的目录
-e //排除目录 -v //显示详细过程
-F //强制恢复
针对selinux的域:
getsebool 查询selinux的布尔值
-a //所有的服务
setsebool 修改布尔值
-P 参数用于永久且立即生效

10.4、个人主页功能
需要在配置文件中启用功能:vim /etc/httpd/conf.d/userdir.conf
1、把userdir disable 和 userdir public_html 给注释起来(前面加#号)
2、把网站的目录设置为755权限
3、修改selinux的域:setsebool -P httpd_enable_homedirs=on
4、重启服务
个人主页的密码功能:
1、生成密码数据库:htpasswd -c /etc/httpd/passwd linuxprobe //-c代表第一次生成
2、编辑配置文件:vim /etc/httpd/conf.d/userdir.conf
<Directory "/home/*/public_html">
AllowOverride all
authuserfile "/etc/httpd/passwd" //密码文件的保存路径
authname "My privately website" //网站的提示信息
authtype basic
require user linuxprobe //密码登录时需要验证的账户名称
</Directory>
3、重启服务
10.5、虚拟主机功能
基于ip地址
1、分别配置三个IP地址

2、在配置文件中写入:vim /etc/httpd/conf/httpd.conf
<VirtualHost 192.168.10.10> //地址变化,其他相同的配置,再写入其他地址配置信息,这里就写入一个
DocumentRoot /home/wwwroot/10
ServerName www.linuxprobe.com
<Directory /home/wwwroot/10 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
3、设置安全上下文:例:semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
4、重启服务并打开浏览器输入不同的ip地址观察
基于主机名
1、在vim /etc/hosts 中定义域名解析:192.168.10.10 www.linuxprobe.com bbs.linuxprobe.com tech.linuxprobe.com
2、设置网站首页文件
例:echo "hahaha" > /home/wwwroot/www
3、写入配置文件 vim /etc/httpd/conf/httpd.conf
<VirtualHost 192.168.10.10>
DocumentRoot "/home/wwwroot/www"
ServerName "www.linuxprobe.com" //就域名改变,其他的信息不变,再写入另外两个域名的信息,这里之写入了一个
<Directory "/home/wwwroot/www">
AllowOverride None
Require all granted
</directory>
</VirtualHost>
4、设置安全上下文
5、重启服务并打开浏览器,输入不同的域名测试
基本端口号
1、写入网站的首页目录:echo "port:6111" > /home/wwwroot/6111/index.html
2、在 vim /etc/httpd/conf/httpd.conf 中写入 监听的端口号:
listen 6111
listen 6222
3、写入配置文件:vim /etc/httpd/conf/httpd.conf
<VirtualHost 192.168.10.10:6111> //就端口号不同,其他都相同,再写入其他端口号的配置信息,这里只写入了一个
DocumentRoot "/home/wwwroot/6111"
ServerName www.linuxprobe.com
<Directory "/home/wwwroot/6111">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
4、设置安全上下文
5、设置selinux,使其允许端口号:semanage port -a -t http_port_t -p tcp 6111
6、重启服务并浏览器访问实验
10.6、Apache的访问控制
Apache通过指令Allow 允许某主机访问服务器上的网站资源
通过指令 deny 禁止某主机访问服务器上的网站资源
order指令用于定义allow和deny指令起作用的顺序,例如:order allow deny :先匹配允许,若允许则成功访问,反之则拒绝。
复习:基于端口号虚拟机
12.7:第十一章,第十二章
12.8:第十三章
12.9:第十四章,第十五章
《linux就该这么学》第十二节课:第10章,Apache网站服务的更多相关文章
- 【笔记】Linux就该这么学-第六课第四章
vim使用 a 在光标后一位置插入 i 在光标当前位置插入 o 在光标下面创建个空行 dd 删除(剪切)光标所在行 5dd 删除(剪切)从光标处开始的5行 yy 复 ...
- 《Linux就该这么学》培训笔记_ch13_使用Bind提供域名解析服务
<Linux就该这么学>培训笔记_ch13_使用Bind提供域名解析服务 文章最后会post上书本的笔记照片. 文章主要内容: DNS域名解析服务 安装并部署Bind服务程序 部署从服务器 ...
- 《Linux就该这么学》自学笔记_ch22_使用openstack部署云计算服务环境
<Linux就该这么学>自学笔记_ch22_使用openstackb部署云计算服务环境 文章主要内容: 了解云计算 Openstack项目 服务模块组件详解 安装Openstack软件 使 ...
- linux学习第十九天 (Linux就该这么学) 结课了
今天最后一天课程了,结课了,还有点舍不得那,在些也祝 李老师 事业蒸蒸日上,超来超好, 今天内容是部署了 LNMP 部署动态网站环境(linux +nginx+mysql+php) 安装文件挺别多, ...
- LInux 就该这么学 笔记分享
看了Linux就该这么学的前部分书,觉得写的还可以,就在网上找了下面这个同学写的笔记,觉得很详细,所以保存地址,供以后查阅参看.这里对作者表示感谢!!! 博客地址: https://www.cnblo ...
- Linux就该这么学--第五期 学习笔记
第一节:基础 <Linux就该这么学>第二期视频 Linux就该这么学第5期第二节: ------------你的价值:你对公司做出的共享和你的不可替代性------------瑞尔系统R ...
- centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课
centos shell基础知识 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 ...
- 风炫安全web安全学习第三十二节课 Python代码执行以及代码防御措施
风炫安全web安全学习第三十二节课 Python代码执行以及代码防御措施 Python 语言可能发生的命令执行漏洞 内置危险函数 eval和exec函数 eval eval是一个python内置函数, ...
- <-0基础学python.第一课->
初衷:我电脑里面的歌曲很久没换了,我想听一下新的歌曲,把他们下载下来听,比如某个榜单的,但是一首一首的点击下载另存为真的很恶心 所以我想有没有办法通过程序的方式来实现,结果还真的有,而且网上已经有有人 ...
随机推荐
- 使用 NPOI 导出 Excel 文件
[NPOI简介] NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者 ...
- Integer Replacement
https://leetcode.com/problems/integer-replacement/#/solutions 这题是一道典型的搜索问题,我采用广度搜索,可以直接输出最短路径.这题的tes ...
- Java eclipse导入外部项目时出错怎么解决
从外部环境import一个项目进入Java工作环境中,若出现以下错误,解决方法如下: 鼠标移上去,会出现以下错误提示: 解决方法: 选中该项目->右键->Build path->Co ...
- Java 实现视频下载功能
public static boolean httpDownload(String httpUrl, String saveFile) { // 1.下载网络文件 int byteRead; URL ...
- 《团队作业第二周》五小福团队作业——UNO
<团队作业第二周>五小福团队作业--UNO 一.修改完善上周提交的需求规格说明书 THE FIRST改变 首先:我们组的博客无小组分工及占比,这是第一个问题,当时我们在写博客的时候由于很多 ...
- django——模型层之单表
1.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...
- STL 中 使用迭代器删除元素的问题
在vector中删除,大家都知道,直接erase的话,这种写法很有问题.因为erase(iter)之后iter指针就变成野指针了,此时继续iter++就会出问题. for(auto iter = v. ...
- Petrozavodsk Summer-2017. Moscow IPT Contest
A. A Place For My Head 留坑. B. New Divide 从高位到低位贪心,当这一位是$0$时,要尽量取$1$,维护高维后缀最小值进行判断即可. 时间复杂度$O((n+a)\l ...
- MFC版链表实现稀疏多项式相加减
链表实现多项式运算(加减)MFC可视化版 题目 设计一个一元稀疏多项式简单计算器. 基本要求 (1)输入并建立两个多项式: (2)多项式a与b相加,建立和多项式c: (3)多项式a与b相减,建立差多项 ...
- 《javascript设计模式与开发实践》--- (单一职责原则)
看的这本书叫<JavaScript设计模式与开发实践> 先规划一下看书的顺序,基础知识我已经大概的浏览了一遍了,没有留下笔记,以后有时间还会补上.本来打算顺着看的.但是我感觉我很难短时间内 ...