VS 开发 Apache 服务模块

Apache模块开发入门还是非常简单的,只需简单的几步骤就可以DIY出自己的helloworld,本文测试系统为Ubuntu 12.04,

在该系统下只需安装好apache和apache2-threaded-dev这两个包就可以了。然后直接使用apxs2编译和安装模块。

打造helloworld模块

1、程序源代码如下

需包含Apache库

mod_helloworld.c

    #include "httpd.h"  
    #include "http_config.h"  
    #include "http_protocol.h"  
    #include "ap_config.h"  
     
    /* The sample content handler */ 
    static int helloworld_handler(request_rec *r)  
    {  
        if (strcmp(r->handler, "helloworld")) {  
            return DECLINED;  
        }  
        r->content_type = "text/html";        
     
        if (!r->header_only)  
            ap_rputs("The sample page from mod_helloworld.c\n", r);  
        return OK;  
    }  
     
    static void helloworld_hooks(apr_pool_t *p)  
    {  
        ap_hook_handler(helloworld_handler, NULL, NULL, APR_HOOK_MIDDLE);  
    }
   
    /* Dispatch list for API hooks */ 
    module AP_MODULE_DECLARE_DATA helloworld_module = {  
        STANDARD20_MODULE_STUFF, //用于编译后的模块产生版本信息  
        NULL,                  /* 创建目录配置结构*/ 
        NULL,                  /* 合并目录配置结构 */ 
        NULL,                  /* 创建主机配置结构 */ 
        NULL,                  /* 合并主机配置结构 */ 
        NULL,                  /* 为模块配置相关指令       */ 
        helloworld_hooks  /* 注册模块的钩子函数                      */ 
    };   

其中,request_rec是个复杂结构体,其表示一个http请求,从这个结构体中可以获得浏览器连接的各种信息。


2、编译和安装

Vs编译 生成 mod_helloworld.dll

拷贝到Apache更目录的 modules文件中

3、创建conf配置文件

在末尾添加内容,内容如下:

    LoadModule helloworld_module ./modules/mod_helloworld.dll
    <Location /helloworld>
            SetHandler helloworld
    </Location>

4、重启apache

service apache2 restart

重启apache后,在浏览器中输入”localhost/hellworld”,浏览器显示:

The sample page from mod_helloworld.c




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值