版本:boa-0.94.13
一、编译
cd src
./configure
如果是移植,修改Makefile文件,找到CC=gcc和CPP=gcc –E改为对应的交叉编译工具链
make出错
修改compat.h
#define TIMEZONE_OFFSET(foo)foo##->tm_gmtoff
修改为:
#define TIMEZONE_OFFSET(foo)foo->tm_gmtoff
二、boa配置与使用
1、boa.conf修改
Port 80 #自定义端口
User nobody #User nobody正常,User root有问题
Group nogroup #Group nogroup 或 Group 0 正常
ErrorLog /xxx #日志文件路径,注释掉时日志输出到终端
AccessLog /xxx #日志文件路径,注释掉时日志输出到终端
ServerName www.your.org.here #把注释去掉
DocumentRoot /xxx #html根路径
DirectoryIndex index.html #网页输入ip:port加载的页面
MimeTypes /xxx #MimeTypes路径,复制ubuntu的/etc目录的mime.types
ScriptAlias /cgi-bin/ /xxx #cgi路径
2、使用
在html根路径新建一个html文件(如:test.html)和可以放一个ico文件(命名favicon.ico)
运行boa:./boa -c /etc/boa (/etc/boa为boa.conf所在路径)
ps -ef | grep boa #查看boa是否运行
浏览器输入ip:8080/test.html #打开test.html
三、boa用作http服务器以及实现https
不需要boa.conf配置文件
1、boa.c主要修改
2、request.c主要修改
2.1)get_request函数
在函数后面加
增加ssl握手
2.2)process_requests函数
处理自定义的http请求协议
3、read.c主要修改
read_header函数
不做其他处理,只要有收到http请求就返回处理自定义的http请求协议
4、其他修改
用到read和write的地方要增加sslRead和sslWrite
5、一些坑
需要增加NULL判断