参考:https://blog.csdn.net/sinat_33031415/article/details/51783170
1.通过boa官网(http://www.boa.org/)下载得到boa服务器源码包boa_0.94.13.tar.gz,在Ubuntu里面解压得到源码文件夹,进入src文件夹,执行配置指./configura,生成Makefile文件
#cd src
#./configura
2.修改配置
修改Makefile文件,修改部分配置如下:
CC = arm-linux-gcc
CPP = arm-linux-gcc –E
将compat.h文件的:
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改为
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
修改config.c文件,利用if 0 (或者/* */)注释掉下面的代码段:
#if 0
if (mime_types) {
temp = normalize_path(mime_types);
free(mime_types);
mime_types = temp;
}
#endif
修改boa.c文件,利用if 0 (或者/* */)注释掉如下两段代码:
#if 0
if (passwdbuf == NULL) {
DIE("getpwuid");
}
#endif
...
#if 0
if (setuid(0) != -1) {
DIE("icky Linux kernel bug!");
}
#endif
修改中cgi.c中的complete_env函数添加语句:
my_add_cgi_env(req,”LD_LIBRARY_PATH”, “/lib”);
配置完成
3.编译
mm@ubuntu:~/work/tqimx6ul/boa/boa-0.94.13/src$ make
yacc -d boa_grammar.y
make: yacc: Command not found
Makefile:59: recipe for target 'y.tab.c' failed
make: *** [y.tab.c] Error 127
解决:
sudo apt-get install bison
sudo apt-get install flex
再make,得到以下文件
1)src文件目录下的 boa、boa_indexer
2)根目录下的boa.conf(用于配置boa服务器对应参数)
在文件系统建立文件目录如下:
其中boa、boa.conf和boa_indexer为ubuntu下编译生成的文件,将其拷贝至此,mime.types文件为开发板的系统文件/etc/mime.types,将其拷贝至boa文件夹下面。
配置etc/boa/boa.config
...
Port 8080
...
User 0
Group 0
...
ErrorLog /boa/log/error_log
...
AccessLog /boa/log/access_log
...
ServerName 192.168.1.36(你的开发板ip)
...
DocumentRoot /boa/www
...
DirectoryMaker /boa/boa_indexer
...
MimeTypes /boa/mime.types
...
ScriptAlias /cgi-bin/ /boa/cgi-bin/
编写/etc/boa/www/index.html
Hello World!
配置完毕,配置网络与主机的网络,这里开发板ip:192.168.1.36,主机ip:192.168.1.34,网络连通,进入/etc/boa/执行boa
进入浏览器输入192.168.1.36:8080