• 10.2 配置服务文件参数

    10.2 配置服务文件参数

    需要提醒大家的是,前文介绍的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所示。

    httpd配置文件分析

    图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所示。

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

    验证apache服务实验效果

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

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

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

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

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

    1. [root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf
    2. ………………省略部分输出信息………………
    3. 113
    4. 114 #
    5. 115 # DocumentRoot: The directory out of which you will serve your
    6. 116 # documents. By default, all requests are taken from this directory, bu t
    7. 117 # symbolic links and aliases may be used to point to other locations.
    8. 118 #
    9. 119 DocumentRoot "/home/wwwroot"
    10. 120
    11. 121 #
    12. 122 # Relax access to content within /var/www.
    13. 123 #
    14. 124 <Directory "/home/wwwroot">
    15. 125 AllowOverride None
    16. 126 # Allow open access:
    17. 127 Require all granted
    18. 128 </Directory>
    19. ………………省略部分输出信息………………
    20. [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在捣鬼。

    1. [root@linuxprobe ~]# systemctl restart httpd
    2. [root@linuxprobe ~]# firefox

    Apache默认页面

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

    出现问题?大胆提问!

    因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

    Linux技术交流请加A群:560843(),B群:340829(推荐),C群:463590(推荐),点此查看全国群。

    *本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。