RHCE课程-RH253Linux服务器架设笔记五-APACHE服务器配置(1)

简介:
我们准备学习apache服务器,做apache需要DNS服务器,大家要把自己的DNS服务器调试好,排错很简单
1、使用named-check 命令检查配置文件
2、查看日志文件的提示
3、检查自己的网络还有主机环境设置是否正确
named-checkzone  域名   区域文件
image
WEB服务器的架设,在linux有一个很著名的架构叫lamp:linux+apache+mysql+php
我们主要说apache,但是有兴趣的,可以去鸟站找phpbb,是一个论坛的软件,基于lamp架构,挺简单,有兴趣就可以自己去安装来调试下
先简单介绍下http协议吧
WWW的目的就是使信息更易于获取,而不管它们的地理位置在哪里。当使用超文本作为WWW文档的标准格式后,人们开发了可以快速获取这些超文本文档的协议——HTTP协议,即超文本传输协议
HTTP是应用级的协议,主要用于分布式、协作的信息系统。HTTP协议是通用的、无状态的,其系统的建设和传输与数据无关。HTTP也是面向对象的协议,可以用于各种任务,包括名字服务、分布式对象管理、请求方法的扩展、命令等。
http和https分别使用80、443端口
在Internet上,HTTP通信往往发生在TCP/IP连接上,其默认的端口为80,也可以使用其他端口。
Web服务的实现采用客户/服务器模型
客户机运行WWW客户程序——浏览器,它提供良好、统一的用户界面。浏览器的作用是解释和显示Web页面,响应用户的输入请求,并通过HTTP协议将用户请求传递给Web服务器
Web服务器运行服务器程序,它最基本的功能是侦听和响应客户端的HTTP请求,向客户端发出请求处理结果信息。
Web服务通常可以分为两种:静态Web服务和动态Web服务。
这就是http的运行原理了
1.Web浏览器使用HTTP命令向一个特定的服务器发出Web页面请求。
2.若该服务器在特定端口(通常是TCP 80端口)处接收到Web页面请求后,就发送一个应答并在客户和服务器之间建立连接
3.服务器Web查找客户端所需文档,若Web服务器查找到所请求的文档,就会将所请求的文档传送给Web浏览器。若该文档不存在,则服务器会发送一个相应的错误提示文档给客户端。Web浏览器接收到文档后,就将它显示出来。
4、当客户端浏览完成后,就断开与服务器的连接。
image
linux下的web服务器,软件使用的apache大家应该知道吧,apache也是美国军方的一种大型直升机
开放源代码的Apache(阿帕奇)服务器起初由Illinois大学Urbana-Champaign的国家高级计算程序中心开发,后来Apache被开放源代码团体的成员不断地发展和加强。渐渐地,它开始在功能和速度上超越其他Web服务器。由于Apache服务器拥有牢靠可信的美誉,因此从1995年1月以来,Apache一直是Internet上最流行的Web服务器
后台进程:httpd 
脚本:/etc/rc.d/init.d/httpd 
使用端口:80(http),443(https) 
所需RPM包:httpd 
配置路径:/etc/httpd/* 
默认网站存放路径:/var/www/*
优点:免费,稳定,速度快
下面我们先安装apache
yum  install “httpd*” 或rpm安装、不过自己喜欢编译也可以
/config 
make  && make install 
image
安装好了,启动apache,有特殊要求的可以自己编译,但是我们现在用不了那么深
而且编译的不可以自动升级,升级软件只有找新版本的重新编译安装配置
image
我们学apache主要学会以下基本功能
httpd.conf文件的格式  
Web服务的基本配置  
创建虚拟目录 
设置目录权限 
用户认证 
虚拟主机的配置
 
先介绍下apache的常用目录
这个是apache的所有配置文件存放的目录
image
这个是网页文件存放目录,一般在html内
image
apache的主配置文件
image
请大家用自己熟悉的编辑器打开吧
httpd.conf配置文件主要由全局环境、主服务器配置和虚拟主机3个部分组成。每部分都有相应的配置语句,该文件所有配置语句的语法为“配置参数名称 参数值”的形式。
httpd.conf中每行包含一条语句,行末使用反斜杠“\”可以换行,但是反斜杠与下一行中间不能有任何其他字符(包括空白)
httpd.conf的配置语句除了选项的参数值以外,所有选项指令均不区分大小写,可以在每一行前用“#”号表示注释。 
全局配置的相关参数,全局的参数一般不用改哦
ServerType 
选择系统激活服务器的方式。可以是inetd或standalone
默认应该是独立的stationalone 
ServerRoot 
设定Apache 安装的绝对路径
image
TimeOut 
设定 服务器接收至完成的最长等待时间
image
KeepAlive 
设定服务器是否开启连续请求功能,真实服务器一般都要开启
  image
image
image
image
image
Port 
设定http服务的默认端口。
User/Group 
设定 服务器程序的执行者与属组,这个一般是apache
提示一点,如果RHCE考试的时候,题目让你修改存放网页文件的权限,比如是750,这样你一定要注意了,所有用户的读取权限里没有了,apache对网页文件的读取权限也没有了,网站也不能正常访问的,所以你需要修改组为apache或者使用acl给apache用户访问权限,修改为755可以,这个看题目要求,考试的测试网页是html的,就简单的字符,能访问就行了,你别去改全局的什么连续请求啊,最大闲置进程啊之类的,考试嘛,能达到效果就OK,不是做优化 
一般在apache里,都说用户,这个组没多大意思的,是建立用户的时候就建立默认组了,网页的所有组或者所有者改成apache
ps:
/dev/null 是编程使用 把错误输出导进去
zero是无限零资源设备,在测试lvm和quota的时候使用
/dev/null是黑洞,给他什么吃什么。/dev/zero是太阳取之不尽用之不竭。嘿嘿我们老师说的。很经典
o(∩_∩)o...
######################Michael分割线###########################
我们简单介绍了apache,下面我们就开始实战
image
打开firefox,输入自己的域名
image
如果能看见红色的redhat的测试页面,就证明你的安装没有问题,如果看不见,你就要从新安装,或者调试你的网络了,我们说过,网页文件默认是放在/var/www/html中的,我们现在就自己去写个网页,简单的,来测试下
image
然后重新访问你的服务器,看看有什么变化
image
这个是默认的情况,我从网页down个网页,我现在把他放到/var/www/html中去
打开主配置文件,搜索index.html
image
看见DirectoryIndex了么,这个位置就是定义主页文件的名字的,自己可以随意修改,但是一般网页开发都写成了index.html,index.htm default.html 等等,所以你也最好这样写
image
我添加了一个index.php ,方便一会我们测试apache支持php,如果找不到,系统会出现redhat的测试页面,你可以,试试
image
搜索/var/www/html
image
documentRoot 就是定义网站的默认网站存放目录,如果考试要让你修改默认网站目录的位置,你就需要修改这个位置
image
现在我们测试把默认网站目录改到root家目录下
第一步,修改DocumentRoot这个位置
第二步,修改目录的权限设置
image 
保存退出并重启httpd服务
image
启动失败了,我们把selinux暂时关闭了,测试看是不是selinux的原因,用setup 来关闭selinux
image
image
image
image
image
关闭后httpd服务就启动起来了
image
但是权限还是不对,直接再次搜索/var/www/html 找到就改成新的目录就可以了,因为/root目录的权限是750,所以apache用户没有访问权限,我们要给apache用户访问权限,简单点改成755就可以了
image
image
建个PHP页面哈~
image
image
现在就可以访问了,下面我们要解决的就是selinux的问题,我们现打开selinux
image
再次访问
image
又是权限拒绝了,我们就需要修改selinux的上下文了
使用chcon 命令来修改上下文
-R 是递归修改,连目录里面的一起修改
--reference  是拷贝 /var/www/html的上下文应用到/root/web下去
ls -Z是查看文件的上下文
image
修改上下文后,就又可以访问了
image
######################Michael分割线###########################
下面我们就讲虚拟机主机
1、基于名称的虚拟主机
查看你的DNS服务器,是否对你服务器做出了两个正向解析
image
我的有三个正向解析,说说基于名称的虚拟机主机吧,这个是现在很常用的技术,一个服务器放一个公司的网页不现实,一般都是放了几个公司的网站,但是服务器怎么区分用户访问网站呢?,这就是虚拟主机技术,虚拟机主机有基于域名和基于IP两种方法,一般使用基于域名的,应为现在IPV4的公网IP很珍贵的,如果一个网站一个IP,那么就会浪费掉很多IP,如果使用域名就不会有这种浪费
我们实现基于域名的虚拟机主机
步骤 
1、需要两个域名解析到你的服务器,我的是 
server.michael.com   192.168.8.188 
[url]www.michael.com[/url]      192.168.8.188
2、建立/var/www/server 目录,用于存放server.michael.com的网站
3、给/var/www/server 和/var/www/thml分别放入网站,内容要不一样,方便我们区分
image
5、修改配置文件
取消NameVirtualHost这行的注释,并写入你服务器的IP地址,这条的意思是启用基于名称的虚拟机主机
然后在最后写入虚拟机主机的内容
<>是主机通告,前后要对应 
serveradmin 是管理员邮箱 
documentroot  是网页目录 
servername   是域名 
下面两个是日志文件
image
由于我们两个虚拟主机,所以我们写两个,如果有多个,你就需要定义多个,完成后保存退出,重启服务后就可以测试了
image
image
image
######################Michael分割线###########################
下节课我们继续讲,基于IP地址的虚拟主机,如何提供网站下载,如何使用apache自带的basic认证,如何支持php和jsp,还有支持cgi
配置步骤 
1、添加一个虚拟机网卡,并配置一个IP地址
临时使用,重新启动网卡消失
image
2、基于上面的操作,修改配置文件
注释掉这行,取消基于域名的虚拟主机
image
下面只需要修改virtualhost 的IP地址,多了一个临时的虚拟网卡,这个虚拟网卡上也配置了IP地址
image
image
注意地址栏的IP地址不同哦
image
image
下一个功能,基于web页面的资源下载
使用别名来实现,当然别名也可以实现网站目录转换
下面我们来看看别名的配置
修改配置文件
image
搜索Alias,找到下面的位置
image
我们现设置一个别名对我们刚才那个网站的访问
image
/test 是别名名称
/root/web/site 是真实位置
注意真实位置的权限和selinux上下文一定要正确。注意,Directory是对你真是目录的权限设置,我们刚才修改默认家目录都修改过了,所以这里我们就不用修改了
保存退出测试
image
注意我的地址栏的写法
image
这个也是别名的一个功能,当然别名还能实现用户主页的功能
下面我们来实现网页的资源下载
1、添加别名
2、对/VAR/FTP/PUB目录设置权限
image
options选项必须要有Multiviews参数,然后保存退出,重启测试
image
image
就出现了貌似FTP的东西,可以提供资源下载
下一个功能,basic基本认证,基于用户名和密码
1、修改配置文件
基于我们刚才的down别名设置
image
提示一下 
<>里面是目录
Authtype 是认证类型 Basic apache自带的基本认证
Authname  认证名字,是提示你输入密码的对话框的提示语
Authuserfile  是存放认证用户的文件
require user  允许指定的一个或多个用户访问,就是后面跟的redking用户
如果认证文件里面还有其他用户,还是不能访问
require valid-user  的话,就是所有认证文件里面的用户都可以访问
require group 授权给一个组,这个参数很少用
下面我们开始创建认证用户文件
image
这样就创建了一个redhat用户,重新启动服务器,测试效果
image
可以访问
image
还有一种是更灵活的认证方式,这种认证需要修改配置文件,当然用户是没有权限修改配置文件了,他想使用认证怎么办?这个就使用基于目录的认证,把认证文件放在用户可以管理的主业目录内,这样用户就可以随意修改了
我们对/var/www/html目录进行设置
image
image
访问192.168.8.188就可以访问到/var/ww/html目录
image
下面我们在目录内放入认证文件
image
image
然后创建用户51cto
image
重新启动服务器,并测试
image
image
image
OK,测试成功,还有4个内容,我们下季在讲吧,cgi的支持,php的支持,jsp的支持,https的配置
######################Michael分割线###########################









本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/151561 ,如需转载请自行联系原作者
相关文章
|
21小时前
|
Web App开发 安全 Unix
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
|
1天前
|
存储 运维 Java
Linux笔记02 —— Shell补充
Linux笔记02 —— Shell补充
20 2
|
1天前
|
安全 Linux Shell
Linux笔记01 —— Linux初识与Shell汇总(请配合另一篇《Linux笔记02》一起使用)
Linux笔记01 —— Linux初识与Shell汇总(请配合另一篇《Linux笔记02》一起使用)
9 1
|
1天前
|
安全 Linux Android开发
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
该文介绍了如何在Linux服务器上交叉编译Android的FFmpeg库以支持HTTPS视频播放。首先,从GitHub下载openssl源码,解压后通过编译脚本`build_openssl.sh`生成64位静态库。接着,更新环境变量加载openssl,并编辑FFmpeg配置脚本`config_ffmpeg_openssl.sh`启用openssl支持。然后,编译安装FFmpeg。最后,将编译好的库文件导入App工程的相应目录,修改视频链接为HTTPS,App即可播放HTTPS在线视频。
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
|
6天前
|
Linux 编译器 C语言
Linux课程四课---Linux开发环境的使用(gcc/g++编译器的相关)
Linux课程四课---Linux开发环境的使用(gcc/g++编译器的相关)
|
6天前
|
Linux
Linux课程四课---Linux开发环境的使用(自动化构建工具-make/Makefile的相关)
Linux课程四课---Linux开发环境的使用(自动化构建工具-make/Makefile的相关)
|
6天前
|
Linux 开发工具 C语言
Linux课程四课---Linux开发环境的使用(vim编辑器的相关)
Linux课程四课---Linux开发环境的使用(vim编辑器的相关)
|
6天前
|
缓存 Linux Windows
Linux课程三课---Linux开发环境的使用(yum的相关)
Linux课程三课---Linux开发环境的使用(yum的相关)
|
6天前
|
存储 Linux Shell
linux课程第二课------命令的简单的介绍2
linux课程第二课------命令的简单的介绍2
|
6天前
|
Linux C语言 数据安全/隐私保护
linux课程第二课------命令的简单的介绍3
linux课程第二课------命令的简单的介绍3