阅读(272) (7)

10.2 配置服务文件参数

2019-05-05 13:16:18 更新

需要提醒大家的是,前文介绍的httpd服务程序的安装和运行,仅仅是httpd服务程序的一些皮毛,我们依然有很长的道路要走。在Linux系统中配置服务,其实就是修改服务的配置文件,因此,还需要知道这些配置文件的所在位置以及用途,httpd服务程序的主要配置文件及存放位置如表10-1所示。

表10-1 Linux系统中的配置文件

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

大家在首次打开httpd服务程序的主配置文件,可能会吓一跳—竟然有353行!这得至少需要一周的时间才能看完吧?!但是,大家只要仔细观看就会发现刘遄老师在这里调皮了。因为在这个配置文件中,所有以井号(#)开始的行都是注释行,其目的是对httpd服务程序的功能或某一行参数进行介绍,我们不需要逐行研究这些内容。

在httpd服务程序的主配置文件中,存在三种类型的信息:注释行信息、全局配置、区域配置,如图10-4所示。

图10-4 httpd服务程序的主配置文件的构成

各位读者在学习第4章时已经接触过注释信息,因此这里主要讲解全局配置参数与区域配置参数的区别。顾名思义,全局配置参数就是一种全局性的配置参数,可作用于对所有的子站点,既保证了子站点的正常访问,也有效减少了频繁写入重复参数的工作量。区域配置参数则是单独针对于每个独立的子站点进行设置的。就像在大学食堂里面打饭,食堂负责打饭的阿姨先给每位同学来一碗标准大小的白饭(全局配置),然后再根据每位同学的具体要求盛放他们想吃的菜(区域配置)。在httpd服务程序主配置文件中,最为常用的参数如表10-2所示。

表10-2 配置httpd服务程序时最常用的参数以及用途描述

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

从表10-2中可知,DocumentRoot参数用于定义网站数据的保存路径,其参数的默认值是把网站数据存放到/var/www/html目录中;而当前网站普遍的首页面名称是index.html,因此可以向/var/www/html目录中写入一个文件,替换掉httpd服务程序的默认首页面,该操作会立即生效。

在执行上述操作之后,再在Firefox浏览器中刷新httpd服务程序,可以看到该程序的首页面内容已经发生了改变,如图10-5所示。

    [root@linuxprobe ~]# echo "Welcome To LinuxProbe.Com" > /var/www/html/index.html
    [root@linuxprobe ~]# firefox

图10-5 httpd服务程序的首页面内容已经被修改

大家在完成这个实验之后,是不是信心爆棚了呢?!在默认情况下,网站数据是保存在/var/www/html目录中,而如果想把保存网站数据的目录修改为/home/wwwroot目录,该怎么操作呢?且看下文。

第1步:建立网站数据的保存目录,并创建首页文件。

    [root@linuxprobe ~]# mkdir /home/wwwroot
    [root@linuxprobe ~]# echo "The New Web Directory" > /home/wwwroot/index.html

第2步:打开httpd服务程序的主配置文件,将约第119行用于定义网站数据保存路径的参数DocumentRoot修改为/home/wwwroot,同时还需要将约第124行用于定义目录权限的参数Directory后面的路径也修改为/home/wwwroot。配置文件修改完毕后即可保存并退出。

    [root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf 
    ………………省略部分输出信息………………
    113 
    114 #
    115 # DocumentRoot: The directory out of which you will serve your
    116 # documents. By default, all requests are taken from this directory, bu t
    117 # symbolic links and aliases may be used to point to other locations.
    118 #
    119 DocumentRoot "/home/wwwroot"
    120 
    121 #
    122 # Relax access to content within /var/www.
    123 #
    124 <Directory "/home/wwwroot">
    125 AllowOverride None
    126 # Allow open access:
    127 Require all granted
    128 </Directory>
    ………………省略部分输出信息………………
    [root@linuxprobe ~]#

第3步:重新启动httpd服务程序并验证效果,浏览器刷新页面后的内容如图10-6所示。奇怪!为什么看到了httpd服务程序的默认首页面?按理来说,只有在网站的首页面文件不存在或者用户权限不足时,才显示httpd服务程序的默认首页面。我们在尝试访问http://127.0.0.1/index.html页面时,竟然发现页面中显示“Forbidden,You don't have permission to access /index.html on this server.”。而这一切正是SELinux在捣鬼。

    [root@linuxprobe ~]# systemctl restart httpd
    [root@linuxprobe ~]# firefox

图10-6 httpd服务程序的默认首页面