apache2 的指令按输入来源分为两种:一种称为 command -directive,是在命令行下通过 -c/-C 参数输入的,一种是 resource -directive ,是在配置文件中配置的。两种指令会通过合并,保存到 指令树 conftree 中。

process_command_config
ap_process_resource_config

指令存取的步骤:

1、读取文件 http.conf 到内存,此操作的结果是树 ap_conftree(config.c 中定义的全局变量) 中。
ap_read_config(process, ptemp, confname, &ap_conftree);

2、遍历 ap_conftree 树,执行注册的指令

ap_walk_config(conftree, &parms, s->lookup_defaults);

以上两步操作中,我们可以通过两个钩子影响程序的行为:

    // 读取配置文件到内存后并且解析指令前
    ap_hook_pre_config ( my_shm_create_handler, NULL, NULL, APR_HOOK_MIDDLE); 
    // 解析指令后
    ap_hook_post_config (  my_conftree_restore_handler, NULL, NULL, APR_HOOK_MIDDLE); 

所以你可以用它作为一个 xml解析器。

转载于:https://www.cnblogs.com/diylab/archive/2011/02/22/1927721.html

apache2 指令存取相关推荐

  1. 一些汇编指令和寄存器。

    今天学习C中对于一些代码中,执行原理不是清楚的了解,如简单的字符型char数据,编译器是如何处理的.以及等等很多只看过程远远不能清楚了解内部原理,对于学习有很深的障碍.所有有必要去学习基础汇编与寄存器 ...

  2. java字符串拆分成数组_用Java实现JVM第八章《数组和字符串》

    小傅哥 | https://bugstack.cn 沉淀.分享.成长,专注于原创专题案例,以最易学习编程的方式分享知识,让自己和他人都能有所收获.目前已完成的专题有:Netty4.x实战专题案例.用J ...

  3. 操作系统原理第八章:内存管理

    目录 1 内存管理背景 2 固定分区分配 3 动态内存分配 3.1 首先适应 (First-fit) 3.2 最佳适应 (Best-fit) 3.3 外碎片问题 4 分页 5 分页硬件支持 6 分段管 ...

  4. 编译过程中的链接地址对最终编译镜像文件的影响

    MDK和交叉编译工具编译时都会指定程序的下载的地址(其实就是告诉程序它将在那个地址上开始执行),这有什么意义吗? 其实这么设计有原因的,因为这里涉及到全局变量和全局函数指针的地址问题,加入当你在编译时 ...

  5. c++ new 数组_用Java实现JVM第八章《数组和字符串》

    案例介绍 本章主要介绍如何实现让虚拟机处理数组和字符串,在虚拟机功能增强后,我们可以执行数组类型计算和输出字符串.本章需要新增实现数组指令:newarray.anewarray.arraylength ...

  6. JAVA内部类示例分析

    内部类是非常有用的类,如果该内部类只为当前类服务,写成内部类将是非常好的选择,详细看程序中的注释: import java.util.HashMap;public class Test1 { //声明 ...

  7. 计算机组成部分有cpu吗,计算机组成原理笔记——处理器(1)[未完]

    文章目录 Chapter4_逻辑设计基础 部件介绍 -组合逻辑 -状态组件 数据通路(Datapath)和控制器 -Datapath组件 -操作简述 -操作详述(结合图片&暂不考虑控制信号) ...

  8. php adodb使用,ADODB类使用_PHP教程

    MySQL的例子 PHP中最通用的数据库是MySQL,所以我想你会喜欢下面的程序代码,它连结到 localhost 的 MySQL 服务器,数据库名称是 mydab,并且执行一个 SQL 的 sele ...

  9. STVD ERROR:misplaced local declaration

    STVD ERROR:misplaced local declaration 问题解决: 在使用STVD的时候报如上错误,发现是STVD的编译器COSMIC的编译语法标准和C99的不一样,C99中,函 ...

最新文章

  1. python tkinter窗口弹出置顶的方法
  2. 六级单词pdf_雅思提高词汇量是背单词还是大量刷题
  3. java 什么是耦合_什么是耦合、解耦
  4. 力荐iReaper/as a Weekend Systems Admin...为何我从来没用过GHOST?
  5. 【编译原理笔记19】代码优化: 支配结点和回边,自然循环及其识别,删除全局公共子表达式和复制语句,代码移动,作用于归纳变量的强度削弱,归纳变量的删除
  6. tomcat管理主机
  7. linux怎么查看tudexo状态,linux怎么安装tuxedo中间件?
  8. db4o java教程_Db4o 社区版 8.1.1 发布,面向对象数据库
  9. 实践Hive的点点滴滴
  10. jetbrains goland配置go开发环境
  11. RK平台HDMI、喇叭音频同时输出
  12. canvas教程大纲
  13. 小知识:Java中冒号(:)有哪些用法?
  14. java-net-php-python-jspm人力外包服务公司招聘管理系统计算机毕业设计程序
  15. Pytest 基础教程
  16. Web编程——新闻爬虫+网站搭建
  17. 2013华为工作之研究所行
  18. 程序猿媳妇儿注意事项 (转载)
  19. C# SuperSocket 手把手教你入门 傻瓜教程---3(Telnet服务器和客户端请求处理)
  20. 网易互客CRM 微盟系统 管易系统 金蝶系统对接集成整体解决方案

热门文章

  1. linux c++开发问题汇总
  2. 运维杂记(二):打印机print spooler服务自动关闭
  3. CentOS 6.3编译安装Nginx1.2.2+MySQL5.5.25a+PHP5.4.5
  4. Linux —— 时间(hwlock设置硬件时间)
  5. C语言 —— 预定义符号__FILE____LINE___func__(编写调试函数printf , debug)
  6. Luogu P1967 NOIP2013 货车运输
  7. windows平台 python生成 pyd文件
  8. javase 超市库存系统
  9. 数据结构之图的创建(邻接表)
  10. MVC通过ViewBag动态生成Html输出到View