Apache模块开发的第一篇,我们用最快速简单的方式,感受Apache模块开发。
开发环境
操作系统:CentOS 6
Apache版本:2.2.31
源码安装Apache httpd
- 下载源码
- 解压缩
- 进入目录
- ./configure
- make
- sudo make install
默认会安装到/usr/local/apache2下面
测试安装结果
- sudo /usr/local/apache2/bin/apachectl start
- curl “http://localhost"
- 如果出现
<html><body><h1>It works!</h1></body></html>
说明安装成功
开发自己的模块
Apache允许用户开发自己的模块,以处理特殊的用户逻辑,细节我们后面再聊。
我们现在要做的就是开发一个模块,当通过http请求的时候,返回简单的“Hello”就可以了。
生成工程文件
Apache安装后,在安装目录的bin目录下有个文件叫apxs,用于创建、编译、安装Apache的自定义模块。
首先,用它来创建一个工程:
进入你的home目录:
1
cd
创建一个代码目录:
1
mkdir code
进入code目录:
1
cd code
生成工程:
1
/usr/local/apache2/bin/apxs -g -n hello
进入hello目录,发现有三个文件,分别是:
- Makefile
- mod_hello.c
- modules.mk
编译工程
编译工程可以直接在hello目录下面输入make
命令,也可以用刚才提到的apxs文件执行,我们采用简单的方式:
- 确认自己在hello目录下
make
sudo make install
新生成的文件会被安装到/usr/local/apache2/modules/
目录下面,为mod_hello.so
配置模块
Apache如何知道我们新创建的模块呢?这就需要在配置文件中进行相关配置:
- 打开文件
/usr/local/apache2/conf/httpd.conf
在文件最后追回如下内容:
1
2
3
4LoadModule hello_module modules/mod_hello.so
<Location /hello>
SetHandler hello
</Location>重新启动Apache
1
2sudo /usr/local/apache2/bin/apachectl stop
sudo /usr/local/apache2/bin/apachectl start
验证成果
curl "http://localhost/hello"
- 会看到
The sample page from mo_hello.c
- 成功!
总结
- 我们通过源码安装了Apache服务器。
- 快速创建了一个hello模块。
- 加载hello模块,并对其进行了验证。
更多精彩,后续更新~