Apache源代码解析之读取配置文件

本文解析了Apache服务器的基础配置过程,包括配置文件的路径设定、服务器端口、用户及组权限等关键参数的初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

节选自《Apache源代码解析-基于Apache0.6.5》第十一章。

网址:http://www.oldapache.org

论坛:http://bbs.oldapache.org

邮箱:tsingien@gmail.com



11.1 概述

 

    我们在前几章里面描述的所有几乎所有配置的初始化都是在文件http_config.c中完成的。我们之所以把它放在这里是为了让您在了解了所有的配置功能以后才查看这些配置是怎么读取的,这样更容易理解这部分代码。

11.2 代码注释

 

   1        #include "httpd.h"

   2       

   3        int port ;                               // 服务器开启的端口

   4        uid_t user_id ;                          // 服务器以哪个用户 ID 启动

   5        char user_name[LOGNAME_MAX+12];          // 对应 user_id 的用户名

   6        gid_t group_id ;                         // 服务器以哪个组权限启动

   7        char server_root[MAX_STRING_LEN];        // 服务器目录

   8        char error_fname[MAX_STRING_LEN];        // 错误日志

   9        char xfer_fname[MAX_STRING_LEN];         // 访问日志

  10        char pid_fname[MAX_STRING_LEN];          // 服务器运行时进程 ID 记录文件

  11         char server_admin[MAX_STRING_LEN];       // 出错时提示接受意见的邮箱

  12        char*server_hostname ;                   // 站点域名

  13        char srm_confname[MAX_STRING_LEN];       // srm.conf 文件位置

  14        char server_confname[MAX_STRING_LEN];    // httpd.conf 文件位置

  15        char access_confname[MAX_STRING_LEN];    // access.conf 文件位置

  16        char types_confname[MAX_STRING_LEN];     // mime.types 文件位置

  17       

  18        char*response_code_strings[RESPONSE_CODES+1];

  19        int timeout ;

  20       

            /* 处理服务器配置

              * 1. 确定各个配置文件的路径

              * 2. 确定各个日志文件的路径

              * 3. 根据文件 httpd.conf 的内容设置相关参数

             */

  21        void process_server_config(FILE*errors)

  22        {

  23            FILE*cfg ;

  24            char l[MAX_STRING_LEN],w[MAX_STRING_LEN];

  25            int n=0 ;

  26             

  27            port=DEFAULT_PORT ;

  28            strcpy(user_name,DEFAULT_USER);

  29            user_id=uname2id(DEFAULT_USER);

  30            group_id=gname2id(DEFAULT_GROUP);

  31            make_full_path(server_root,DEFAULT_ERRORLOG,error_fname);

 

限于篇幅,注释代码部分请参看本书官网。  


节选自《Apache源代码解析-基于Apache0.6.5》第十一章。

网址:http://www.oldapache.org

论坛:http://bbs.oldapache.org

邮箱:tsingien@gmail.com

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值