1、项目十三 配置与管理Apache服务器2项目导入认识Apache。掌握Apache服务的安装与启动方法。掌握Apache服务的主配置文件。掌握各种Apache服务器的配置方法。学会创建Web网站和虚拟主机。职业能力目标和要求某学院组建了校园网,建设了学院网站。现需要架设Web服务器来为学院网站安家,同时在网站上传和更新时,需要用到文件上传和下载,因此还要架设FTP服务器,为学院内部和互联网用户提供WWW、FTP等服务。本项目先实践配置与管理Apache服务器。32HTTP(1)客户端访问Web服务器的过程 Web浏览器使用HTTP命令向服务器发出Web请求(一般是使用GET命令要求返回一个页面
2、,但也有POST等命令)。服务器接收到Web页面请求后,就发送一个应答并在客户端和服务器之间建立连接。建立连接示意图如图13-1所示。Web服务器查找客户端所需文档,若Web服务器查找到所请求的文档,就会将所请求的文档传送给Web浏览器。若该文档不存在,则服务器会发送一个相应的错误提示文档给客户端。Web浏览器接收到文档后,就将它解释并显示在屏幕上。传输相关内容示意图如图13-2所示。HTTP(Hypertext Transfer Protocol,超文本传输协议)可以算得上是目前国际互联网基础上的一个重要组成部分。而Apache、IIS服务器是HTTP协议的服务器软件,微软的Internet
3、 Explorer和Mozilla的Firefox则是HTTP协议的客户端实现。4图13-1 Web客户端和服务器之间建立连接 图13-2 Web客户端和服务器之间进行数据传输 当客户端浏览完成后,就断开与服务器的连接。关闭连接示意图图13-3所示。图13-3 Web客户端和服务器之间关闭连接5(2)端口HTTP请求的默认端口是80,但是也可以配置某个Web服务器使用另外一个端口(比如8080)。这就能让同一台服务器上运行多个Web服务器,每个服务器监听不同的端口。但是要注意,访问端口是80的服务器,由于是默认设置,所以不需要写明端口号。如果访问的一个服务器是8080端口,那么端口号就不能省略
4、,它的访问方式就变成了:http:/:8080/1 13 3.2 2 任务1 安装、启动与停止Apache服务13.2.1 子任务1 安装Apache相关软件6rootRHEL7-1#rpm-q httpdrootRHEL7-1#mkdir/isorootRHEL7-1#mount/dev/cdrom/isorootRHEL7-1桌面#yum clean all/安装安装前先清除缓存前先清除缓存rootRHEL7-1#yum install httpd-yrootRHEL7-1#yum install firefox y/安装浏览器安装浏览器rootRHEL7-1#rpm qa|grep ht
5、tpd/检查安装组检查安装组件是否成功件是否成功启动或重新启动、停止Apache服务的命令如下:rootRHEL7-1#systemctl start/restart/stop httpd713.2.2 子任务2 让防火墙放行,并设置SELinux为允许需要注意的是,Red Hat Enterprise Linux 7采用了SELinux这种增强的安全模式,在默认的配置下,只有SSH服务可以通过。像Apache这种服务,在安装、配置、启动完毕后,还需要为它放行才行。(1)使用防火墙命令,放行http服务。rootRHEL7-1#firewall-cmd-list-allrootRHEL7-1#
6、firewall-cmd-permanent-add-service=httpsuccessrootRHEL7-1#firewall-cmd-reloadsuccessrootRHEL7-1#firewall-cmd-list-allpublic(active)target:default icmp-block-inversion:no interfaces:ens33 sources:services:ssh dhcpv6-client samba dns http 8(2)更改当前的SELinux值,后面可以跟Enforcing、Permissive或者1、0。rootRHEL7-1#se
7、tenforce 0rootRHEL7-1#getenforcePermissive13.2.3 子任务3 测试httpd服务是否安装成功启动Apache服务器,并设置开机自动加载Apache服务。rootRHEL7-1#systemctl start httpdrootRHEL7-1#systemctl enable httpdrootRHEL7-1#firefox http:/127.0.0.1如果看到图13-4所示的提示信息,则表示Apache服务器已安装成功。也可以在Applications菜单中直接启动firefox,然后输入在地址栏输入http:/127.0.0.1,测试是否成功安
8、装。9图13-4 Apache服务器运行正常13.313.3 任务2 认识Apache服务器的配置文件在Linux系统中配置服务,其实就是修改服务的配置文件,httpd服务程序的主要配置文件及存放位置如表13-1所示。10配置文件的名称存 放 位 置服务目录/etc/httpd主配置文件/etc/httpd/conf/httpd.conf网站数据目录/var/www/html访问日志/var/log/httpd/access_log错误日志/var/log/httpd/error_log Apache服务器的主配置文件是httpd.conf,该文件通常存放在/etc/httpd/conf目录下
9、。文件看起来很复杂,其实很多是注释内容。本节先作大略介绍,后面的章节将给出实例,非常容易理解。httpd.conf文件不区分大小写,在该文件中以“”开始的行为注释行。除了注释和空行外,服务器把其他的行认为是完整的或部分的指令。指令又分为类似于shell的命令和伪HTML标记。指令的语法为“配置参数名称 参数值”。伪HTML标记的语法格式如下:11 Options FollowSymLinks AllowOverride None 在httpd服务程序的主配置文件中,存在3种类型的信息:注释行信息、全局配置、区域配置。在httpd服务程序主配置文件中,最为常用的参数如表13-2所示。表13-2
10、配置httpd服务程序时最常用的参数以及用途描述参 数用 途ServerRoot服务目录ServerAdmin管理员邮箱User运行服务的用户Group运行服务的用户组ServerName网站服务器的域名DocumentRoot文档根目录(网站数据目录)Directory网站数据目录的权限Listen监听的IP地址与端口号DirectoryIndex默认的索引页页面ErrorLog错误日志文件CustomLog访问日志文件Timeout网页超时时间,默认为300秒 从表13-2中可知,DocumentRoot参数用于定义网站数据的保存路径,其参数的默认值是把网站数据存放到/var/www/ht
11、ml目录中;而当前网站普遍的首页面名称是index.html,因此可以向/var/www/html目录中写入一个文件,替换掉httpd服务程序的默认首页面,该操作会立即生效(在本机上测试)。rootRHEL7-1#echo Welcome To MyWeb /var/www/html/index.htmlrootRHEL7-1#firefox http:/127.0.0.11213程序的首页面内容已经发生了改变,如图13-5所示。图13-5 首页内容已发生改变提示:如果没有出现希望的画面,而是仍回到默认页面,那一定是SELinux的问题。请在终端命令行运行setenforce 0后再测试。详细
12、解决方法,请继续阅读本书的下一节寻求帮助!1413.413.4 任务3 常规设置Apache服务器的实例1设置文档根目录和首页文件的实例【例13-1】默认情况下,网站的文档根目录保存在/var/www/html中,如果想把保存网站文档的根目录修改为/home/wwwroot,并且将首页文件修改为myweb.html,那么该如何操作呢?(1)分析文档根目录是一个较为重要的设置,一般来说,网站上的内容都保存在文档根目录中。在默认情形下,除了记号和别名将改指它处以外所有的请求都从这里开始。而打开网站时所显示的页面即该网站的首页(主页)。首页的文件名是由DirectoryIndex字段来定义的。在默认
13、情况下,Apache的默认首页名称为index.html。当然也可以根据实际情况进行更改。(2)解决方案 在在RHEL7-1上修改文档的根据目录为上修改文档的根据目录为/home/www,并创建首页文件myweb.html。rootRHEL7-1#mkdir/home/wwwrootRHEL7-1#echo The Webs DocumentRoot Test /home/www/myweb.html 在在RHEL7-1上,上,打开httpd服务程序的主配置文件,将约第119行用于定义网站数据保存路径的参数DocumentRoot修改为/home/www,同时还需要将约第124行用于定义目录权
14、限的参数Directory后面的路径也修改为/home/www,将第164行修改为DirectoryIndex myweb.html index.html。配置文件修改完毕后即可保存并退出。15rootRHEL7-1#vim/etc/httpd/conf/httpd.conf 省略部分输出信息119 DocumentRoot/home/www120 121#122#Relax access to content within/var/www.123#124 125 AllowOverride None126#Allow open access:127 Require all granted12
15、8 省略部分输出信息 163 164 DirectoryIndex index.html myweb.html165 省略部分输出信息16 让防火墙放行让防火墙放行http服务,重启服务,重启httpd服务。服务。rootRHEL7-1#firewall-cmd-permanent-add-service=httprootRHEL7-1#firewall-cmd-reloadrootRHEL7-1#firewall-cmd-list-all Client1测试(测试(RHEL7-1和和Client1ient1都是都是VMnet1连接,保证互相通信)。连接,保证互相通信)。rootclient1
16、#firefox http:/192.168.10.1 故障排除。奇怪!为什么看到了httpd服务程序的默认首页面?按理来说,只有在网站的首页面文件不存在或者用户权限不足时,才显示httpd服务程序的默认首页面。更奇怪的是,我们在尝试访问http:/192.168.10.1/myweb.html页面时,竟然发现页面中显示“Forbidden,You dont have permission to access/index.html on this server.”,如图13-6所示。什么原因呢?是SELinux的问题!解决方法是在服务器端运行setenforce 0,设置SELinux为允许:
17、rootRHEL7-1#getenforceEnforcingrootRHEL7-1#setenforce 0rootRHEL7-1#getenforcePermissive17特别提示:设置完成后再一次测试,结果如图13-7所示。设置这个环节的目的是告诉读者,SELinux的问题是多么重要!强烈建议SELinux如果暂时不能很好掌握细节,在做实训时一定设置setenforce 0。图13-6 在客户端测试失败 图13-7 在客户端测试成功2用户个人主页实例现在许多网站(如网易)都允许用户拥有自己的主页空间,而用户可以很容易地管理自己的主页空间。Apache可以实现用户的个人主页。客户端在浏览
18、器中浏览个人主页的URL地址的格式一般为http:/域名/username18其中,“username”在利用Linux系统中的Apache服务器来实现时,是Linux系统的合法用户名(该用户必须在Linux系统中存在)。【例13-2】在IP地址为192.168.10.1的Apache服务器中,为系统中的long用户设置个人主页空间。该用户的家目录为/home/long,个人主页空间所在的目录为public_html。实现步骤如下。(1)修改用户的家目录权限,使其他用户具有读取和执行的权限。rootRHEL7-1#useradd longrootRHEL7-1#passwd longrootR
19、HEL7-1#chmod 705 /home/long(2)创建存放用户个人主页空间的目录。rootRHEL7-1#mkdir /home/long/public_html(3)创建个人主页空间的默认首页文件。rootRHEL7-1#cd /home/long/public_htmlrootRHEL7-1 public_html#echo this is longs web。index.html19(4)在httpd服务程序中,默认没有开启个人用户主页功能。为此,我们需要编辑配置文件/etc/httpd/conf.d/userdir.conf。然后在第17行的UserDir disabled参
20、数前面加上井号(#),表示让httpd服务程序开启个人用户主页功能。同时,需把第24行的UserDir public_html参数前面的井号(#)去掉(UserDir参数表示网站数据在用户家目录中的保存目录名称,即public_html目录)。修改完毕后保存退出。(在vim编辑状态记得使用“:set nu”,显示行号)rootRHEL7-1#vim/etc/httpd/conf.d/userdir.conf 17#UserDir disabled#24 UserDir public_html#(5)SELnux设置为允许,让防火墙放行httpd服务,重启httpd服务。3rootRHEL7-1
21、#setenforce 0rootRHEL7-1#firewall-cmd-permanent-add-service=httprootRHEL7-1#firewall-cmd-reloadrootRHEL7-1#firewall-cmd-list-alltrootRHEL7-1#systemctl restart httpd(6)在客户端的浏览器中输入http:/192.168.10.1/long,看到的个人空间的访问效果如图13-87所示。图13-8 用户个人空间的访问效果图(示例:微课基本概念)项目导入4了解Linux系统的历史、版权以及Linux系统的特点了解Red Hat Enter
22、prise Linux 5的优点及其家族成员掌握如何配置Linux常规网络和如何测试Linux网络环境掌握如何排除Linux服务器安装的故障职业能力目标和要求某高校组建了校园网,需要架设一台具有Web、FTP、DNS、DCP、Samba、VPN等功能的服务器来为校园网用户提供服务,现需要选择一种既安全又易于管理的网络操作系统,正确搭建服务器并测试。43虚拟目录实例要从Web站点主目录以外的其他目录发布站点,可以使用虚拟目录实现。虚拟目录是一个位于Apache服务器主目录之外的目录,它不包含在Apache服务器的主目录中,但在访问Web站点的用户看来,它与位于主目录中的子目录是一样的。每一个虚拟
23、目录都有一个别名,客户端可以通过此别名来访问虚拟目录。由于每个虚拟目录都可以分别设置不同的访问权限,所以非常适合于不同用户对不同目录拥有不同权限的情况。另外,只有知道虚拟目录名的用户才可以访问此虚拟目录,除此之外的其他用户将无法访问此虚拟目录。在Apache服务器的主配置文件httpd.conf文件中,通过Alias指令设置虚拟目录。【例13-3】在IP地址为192.168.10.1的Apache服务器中,创建名为/test/的虚拟目录,它对应的物理路径是/virdir/,并在客户端测试。(1)创建物理目录/virdir/。rootRHEL7-1#mkdir -p /virdir/(2)创建虚
24、拟目录中的默认首页文件。rootRHEL7-1#cd /virdir/rootRHEL7-1 virdir#echo This is Virtual Directory sample。index.html(3)修改默认文件的权限,使其他用户具有读和执行权限。rootRHEL7-1 virdir#chmod 705 index.html5或者rootRHEL7-1#chmod 705/virdir -R(4)修改/etc/httpd/conf/httpd.conf文件,添加下面的语句。Alias /test /virdir AllowOverride None Require all grant
25、ed(5)SELnux设置为允许,让防火墙放行httpd服务,重启httpd服务。rootRHEL7-1#setenforce 0rootRHEL7-1#firewall-cmd-permanent-add-service=httprootRHEL7-1#firewall-cmd-reloadrootRHEL7-1#firewall-cmd-list-alltrootRHEL7-1#systemctl restart httpd(6)在客户端Client1的浏览器中输入“http:/192.168.10.1/test”后,看到的虚拟目录的访问效果如图13-9所示。图13-9 /test虚拟目录
26、的访问效果图2413.513.5 任务4 其他常规设置1根目录设置(ServerRoot)配置文件中的ServerRoot字段用来设置Apache的配置文件、错误文件和日志文件的存放目录。该目录是整个目录树的根节点,如果下面的字段设置中出现相对路径,那么就是相对于这个路径的。默认情况下,根路径为/etc/httpd,可以根据需要进行修改。【例13-4】设置根目录为/usr/local/httpd。ServerRoot /usr/local/httpd2超时设置Timeout字段用于设置接受和发送数据时的超时设置。默认时间单位是秒。如果超过限定的时间客户端仍然无法连接上服务器,则予以断线处理。默
27、认时间为120秒,可以根据环境需要予以更改。【例13-5】设置超时时间为300秒。Timeout 300253客户端连接数限制客户端连接数限制就是指在某一时刻内,WWW服务器允许多少客户端同时进行访问。允许同时访问的最大数值就是客户端连接数限制。(1)为什么要设置连接数限制?讲到这里不难提出这样的疑问,网站本来就是提供给别人访问的,何必要限制访问数量,将人拒之门外呢?如果搭建的网站为一个小型的网站,访问量较小,则对服务器响应速度没有影响。不过如果网站访问用户突然过多,一时间点击率猛增,一旦超过某一数值很可能导致服务器瘫痪。门户级网站,例如百度、新浪、搜狐等大型网站,它们所使用的服务器硬件实力相
28、当雄厚,可以承受同一时刻成千甚至上万的单击量,但是,硬件资源还是有限的,如果遇到大规模的DDoS(Distributed Denial of Service,分布式拒绝服务攻击),仍然可能导致服务器过载而瘫痪。作为企业内部的网络管理者应该尽量避免类似的情况发生,所以限制客户端连接数是非常有必要的。(2)实现客户端连接数限制。在配置文件中,MaxClients字段用于设置同一时刻内最大的客户端访问数量,默认数值是256。对于小型的网站来说已经够用了。如果是大型网站,可以根据实际情况进行修改。26【例13-6】设置客户端连接数为500。StartServers 8 MinSpareServers
29、5 MaxSpareServers 20 ServerLimit 500 MaxClients 500 MaxRequestSPerChild 4000 4设置管理员邮件地址当客户端访问服务器发生错误时,服务器通常会将带有错误提示信息的网页反馈给客户端,并且上面包含管理员的E-mail地址,以便解决出现的错误。如果需要设置管理员的E-mail地址,可以使用ServerAdmin字段来设置。【例13-7】设置管理员的E-mail地址为。ServerAdmin 275设置主机名称ServerName字段定义了服务器名称和端口号,用以标明自己的身份。如果没有注册DNS名称,可以输入IP地址。当然,可
30、以在任何情况下输入IP地址,这也可以完成重定向工作。【例13-8】设置服务器主机的名称及端口号。ServerName :80技巧:正确使用ServerName字段设置服务器的主机名称或IP地址后,在启动服务时则不会出现“Could not reliably determine the servers fully qualified domain name,using 127.0.0.1 for ServerName”的错误提示了。6网页编码设置由于地域的不同,中国和外国,或者说亚洲地区和欧美地区所采用的网页编码也不同,如果出现服务器端的网页编码和客户端的网页编码不一致,就会导致乱码的出现。这和
31、各国人民所使用的母语不同道理一样,这样会带来交流的障碍。如果想正常显示网页的内容,则必须使用正确的编码。httpd.conf中使用AddDefaultCharset字段来设置服务器的默认编码。在默认情况下,服务器编码采用UTF-8。而汉字的编码一般是GB2312,国家强制标准是GB18030。具体使用哪种编码要根据网页文件里的编码来决定,保持和这些文件所采用的编码是一致的,就可以正常显示。28【例13-9】设置服务器的默认编码为GB2312。AddDefaultCharset GB2312技巧:若不清楚该使用哪种编码,则可以把AddDefaultCharset字段注释掉,表示不使用任何编码,这
32、样让浏览器自动去检测当前网页所采用的编码是什么,然后自动进行调整。对于多语言的网站搭建,最好采用注释掉AddDefaultCharset字段的这种方法。7目录设置目录设置就是为服务器上的某个目录设置权限。通常在访问某个网站的时候,真正所访问的仅仅是那台Web服务器里某个目录下的某个网页文件而已。而整个网站也是由这些零零总总的目录和文件组成。作为网站的管理人员,可能经常需要只对某个目录做出设置,而不是对整个网站做设置。例如,拒绝192.168.0.100的客户端访问某个目录内的文件。这时,可以使用 容器来设置。这是一对容器语句,需要成对出现。在每个容器中有options、AllowOverrid
33、e、Limit等指令,它们都是和访问控制相关的。各参数如表13-3所示。29表13-3 Apache目录访问控制选项访问控制选项描 述Options设置特定目录中的服务器特性,具体参数选项的取值见表13-4AllowOverride设置如何使用访问控制文件.htaccessOrder设置Apache缺省的访问权限及Allow和Deny语句的处理顺序Allow设置允许访问Apache服务器的主机,可以是主机名,也可以是IP地址Deny设置拒绝访问Apache服务器的主机,可以是主机名,也可以是IP地址(1)根目录默认设置。Options FollowSymLinks AllowOverride
34、None以上代码中带有序号的两行说明如下。Options字段用来定义目录使用哪些特性,后面的FollowSymLinks指令表示可以在该目录中使用符号链接。Options还可以设置很多功能,常见功能请参考表13-4所示。AllowOverride用于设置.htaccess文件中的指令类型。None表示禁止使用.htaccess。30表13-4 Options选项的取值可用选项取值描 述Indexes允许目录浏览。当访问的目录中没有DirectoryIndex参数指定的网页文件时,会列出目录中的目录清单Multiviews允许内容协商的多重视图All支持除Multiviews以外的所有选项,如果
35、没有Options语句,默认为AllExecCGI允许在该目录下执行CGI脚本FollowSysmLinks可以在该目录中使用符号链接,以访问其他目录Includes允许服务器端使用SSI(Server Side Include,服务器端包含)技术IncludesNoExec允许服务器端使用SSI(服务器包含)技术,但禁止执行CGI脚本SymLinksIfOwnerMatch目录文件与目录属于同一用户时支持符号链接注意:可以使用“+”或“”号在Options选项中添加或取消某个选项的值。如果不使用这两个符号,那么在容器中的Options选项的取值将完全覆盖以前的Options指令的取值。31(
36、2)文档目录默认设置。Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all以上代码中带有序号的两行说明如下。AllowOverride所使用的指令组此处不使用认证。设置默认的访问权限与Allow和Deny字段的处理顺序。Allow字段用来设置哪些客户端可以访问服务器。与之对应的Deny字段则用来限制哪些客户端不能访问服务器。32Allow和Deny字段的处理顺序非常重要,需要详细了解它们的意思和使用技巧。情况一:Order allow,denyOrder allow,deny表示默认情
37、况下禁止所有客户端访问,且Allow字段在Deny字段之前被匹配。如果既匹配Allow字段又匹配Deny字段,则Deny字段最终生效。也就是说Deny会覆盖Allow。情况二:Order deny,allowOrder deny,allow表示默认情况下允许所有客户端访问,且Deny字段在Allow语句之前被匹配。如果既匹配Allow字段又匹配Deny字段,则Allow字段最终生效。也就是说Allow会覆盖Deny。下面举例来说明Allow和Deny字段的用法。【例13-10】允许所有客户端访问(先允许后拒绝)。Order allow,denyAllow from all【例13-11】拒绝I
38、P地址为192.168.100.100和来自域的客户端访问。其他客户端都可以正常访问。Order deny,allowDeny from 192.168.100.100Deny from 6【例13-12】仅允许192.168.0.0/24网段的客户端访问,但其中192.168.0.100不能访问。Order allow,denyAllow from 192.168.0.0/24Deny from 192.168.0.100为了说明允许和拒绝条目的使用,对照看一下下面的两个例子。【例13-13】除了的主机,允许其他所有人访问Apache服务器。Order allow,denyAllow fro
39、m allDeny from 【例13-14】只允许10.0.0.0/8网段的主机访问服务器。Order deny,allowDeny from allAllow from 10.0.0.0/255.255.0.034注意:Over、Allow from和Deny from关键词,它们大小写不敏感,但allow和deny之间以“,”分割,二者之间不能有空格。技巧:如果仅仅想对某个文件做权限设置,则可以使用容器语句实现,方法和使用几乎一样。例如:Order allow,deny Allow from all713.613.6 任务5 配置虚拟主机基于IP地址的虚拟主机的配置需要在服务器上绑定多个
40、IP地址,然后配置Apache,把多个网站绑定在不同的IP地址上,访问服务器上不同的IP地址,就可以看到不同的网站。【例13-15】假设Apache服务器具有192.168.10.1和192.168.10.2两个IP地址(提前在服务器中配置这两个IP地址)。现需要利用这两个IP地址分别创建两个基于IP地址的虚拟主机,要求不同的虚拟主机对应的主目录不同,默认文档的内容也不同。配置步骤如下。(1)单击“Applications”“System Tools”“Settings”Network”,单击设置按钮,打开如图10-9所示的“Wired”对话框,可以直接单击“+”添加IP地址,完成后单击“Ap
41、ply”按钮。这样可以在一块网卡上配置多个IP地址,当然也可以直接在多块网卡上配置多个IP地址。36图13-9 添加多个IP地址(2)分别创建/var/www/ip1和/var/www/ip2两个主目录和默认文件。rootRHEL7-1#mkdir /var/www/ip1 /var/www/ip2rootRHEL7-1#echo this is 192.168.10.1s web./var/www/ip1/index.htmlrootRHEL7-1#echo this is 192.168.10.2s web./var/www/ip2/index.html37(3)添加/etc/httpd/
42、conf.d/vhost.conf/etc/httpd/conf.d/vhost.conf文件。该文件的内容如下。#设置基于IP地址为192.168.10.1的虚拟主机DocumentRoot /var/www/ip1#设置基于IP地址为192.168.10.2的虚拟主机DocumentRoot/var/www/ip2(4)SELnux设置为允许,让防火墙放行httpd服务,重启httpd服务(见前面操作)。(5)在客户端浏览器中可以看到http:/192.168.10.1和http:/192.168.10.2两个网站的浏览效果如图13-10所示。38奇怪!为什么看到了httpd服务程序的默认
43、首页面?按理来说,只有在网站的首页面文件不存在或者用户权限不足时,才显示httpd服务程序的默认首页面。我们在尝试访问http:/192.168.10.1/index.html页面时,竟然发现页面中显示“Forbidden,You dont have permission to access/index.html on this server.”。这一切都是因为主配置文件里没设置目录权限所致!解决方法是在/etc/httpd/conf/httpd.conf中添加有关两个网站目录权限的内容(只设置只设置/var/www/var/www目录权限目录权限也可以也可以):AllowOverride N
44、one Require all granted AllowOverride None Require all granted39图13-10 测试时出现默认页面13.5.2 子任务2 配置基于域名的虚拟主机基于域名的虚拟主机的配置只需服务器有一个IP地址即可,所有的虚拟主机共享同一个IP,各虚拟主机之间通过域名进行区分。要建立基于域名的虚拟主机,DNS服务器中应建立多个主机资源记录,使它们解析到同一个IP地址。例如:.IN A .IN A 192.168.10.1【例13-16】假设Apache服务器的IP地址为192.168.10.1。在本地DNS服务器中,该IP地址对应的域名分别为和。现需
45、要创建基于域名的虚拟主机,要求不同的虚拟主机对应的主目录不同,默认文档的内容也不同。配置步骤如下。(1)分别创建/var/www/smile和/var/www/long两个主目录和默认文件。40rootRHEL7-1#mkdir /var/www/www1 /var/www/www2rootRHEL7-1#echo s web./var/www/www1/index.htmlrootRHEL7-1#echo s web./var/www/www2/index.html(2)修改httpd.conf文件。添加目录权限内容如下。AllowOverride None Require all gran
46、ted41(3)修改/etc/httpd/conf.d/vhost.conf文件。该文件的内容如下(原来内容清空)。DocumentRoot /var/www/www1ServerName DocumentRoot/var/www/www2 ServerName 42(4)SELnux设置为允许,让防火墙放行httpd服务,重启httpd服务。在客户端Client1上测试。要确保DNS服务器解析正确、确保给Client1设置正确的DNS服务器地址(etc/resolv.conf)。rootRHEL7-1 long#vim/var/named/.zone$TTL 1D IN SOA .(0 ;s
47、erial 1D ;refresh 1H ;retry 1W ;expire 3H);minimum IN NS .IN MX 10 .dns IN A 192.168.10.1www1 IN A 192.168.10.1www2 IN A 192.168.10.14313.5.3 子任务3 基于端口号的虚拟主机的配置基于端口号的虚拟主机的配置只需服务器有一个IP地址即可,所有的虚拟主机共享同一个IP,各虚拟主机之间通过不同的端口号进行区分。在设置基于端口号的虚拟主机的配置时,需要利用Listen语句设置所监听的端口。【例13-17】假设Apache服务器的IP地址为192.168.10.1。
48、现需要创建基于8088和8089两个不同端口号的虚拟主机,要求不同的虚拟主机对应的主目录不同,默认文档的内容也不同,如何配置?配置步骤如下。(1)分别创建/var/www/8088和/var/www/8089两个主目录和默认文件。rootRHEL7-1#mkdir /var/www/8088 /var/www/8089rootRHEL7-1#echo 8088 ports web./var/www/8088/index.htmlrootRHEL7-1#echo 8089 ports web./var/www/8089/index.html44(2)修改/etc/httpd/conf/httpd
49、.conf文件。该文件的修改内容如下。Listen 8088 Listen 8089 AllowOverride None Require all granted(3)修改/etc/httpd/conf.d/vhost.conf文件。该文件的内容如下(原来内容清空)。DocumentRoot /var/www/8088 DocumentRoot/var/www/8089 454)关闭防火墙和允许SELinux,重启httpd服务。然后在客户端Client1上测试。测试结果大失所望!如图13-11所示。46图13-11 访问192.168.10.1:8088报错(5)处理故障。这是因为firew
50、all防火墙检测到8088和8089端口原本不属于Apache服务应该需要的资源,但现在却以httpd服务程序的名义监听使用了,所以防火墙会拒绝Apache服务使用这两个端口。我们可以使用firewall-cmd命令永久添加需要的端口到public区域,并重启防火墙。rootRHEL7-1#firewall-cmd-list-allpublic(active)services:ssh dhcpv6-client samba dns http ports:rootRHEL7-1#firewall-cmd-zone=public-add-port=8088/tcpsuccessrootRHEL7-
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。