BOA服务器搭建步骤
1、下载Boa Webserver的源码
2、解压并编译Boa Webserver
$ tar xvf boa-0.94.13.tar.gz
由于Boa Webserver的Makefile中没有install,我们只是进行编译,然后手动拷贝编译后的二进制文件到相应的文件目录中,因此在使用configure时无须指定位置。
同时在make时,可能会出现不少错误,部分的错误处理方法可以参看<附录>:
$ cd boa-0.94.13/src/
$ ./configure
$ apt-get install bisonflex 否则会出现错误提示
修改 src/compat.h 两处地方 ,否则会出现错误提示
找到#define TIMEZONE_OFFSET(foo)foo##->tm_gmtoff
修改成#defineTIMEZONE_OFFSET(foo)(foo)->tm_gmtoff
若要修改配置文件boa.conf的存放位置,假设修改为"/web",则需修改defines.h:
#define SERVER_ROOT "/etc/boa"
修改成 #define SERVER_ROOT "/web"
$ make
3、配置Boa Web server环境
目录结构如下:
/web 存放html文件
/web/cgi-bin 存放cgi文件
/etc/boa 存放boa.conf
/bin 存放boa和boa_indexer
boa.conf 缺省配置:
User nobody
Group nogroup
DirectoryIndex index.html
CGIPath /bin:/usr/bin:/usr/local/bin
MimeTypes /etc/mime.types
ErrorLog/var/log/boa/error_log
AccessLog /var/log/boa/access_log
boa.conf 改动配置:
User 0
Group 0
#DirectoryMaker /usr/lib/boa/boa_indexer#注释掉,提高访问速度
#ErrorLog /var/log/boa/error_log #注释掉,关闭错误日志
#AccessLog /var/log/boa/access_log #注释掉,关闭访问日志
DocumentRoot/web #存放index.html
ScriptAlias /cgi-bin//web/cgi-bin/ #存放cgi文件
boa.conf 添加配置:
AddType text/plain txt
AddType image/gif gif
AddType text/html html
AddType text/html htm
AddType text/xml xml
AddType image/jpeg jpe
AddType image/jpeg jpeg
AddType image/jpeg jpg
AddType image/x-icon ico
编译后在boa-0.94.13/src/中有2个二进制文件,那就是我们需要的执行档,只需拷贝到/bin中,注意这里的操作权限:
$ sudo cp boa/boa-0.94.13/src/boa /bin
$ sudo cp boa-0.94.13/src/boa_indexer /bin
$ ls /bin/boa*
/bin/boa /bin/boa_indexer
BoaWebserver的配置文件是boa.conf。该文件需要被放置在/etc/boa目录下。同时我们需要对boa.conf稍做修改,注意一定是在/etc/boa下的boa.conf进行修改:
# sudo mkdir /etc/boa
# cp boa/boa-0.94.13/boa.conf /etc/boa/
# gedit /etc/boa/boa.conf
a)【可选配置】找到Group nogroup修改为Group 0; user nobody修改为user 用户名;
修改Group的参数为0是因为系统中没有nogroup组,如果你没有nobody用户,那么Usernobody也要做相应修改(修改成自己的用户名亦可)。其它采用默认设置。如有必要,可以参看<附录>中的参数说明。
b)【可选配置】servername www.your.org.here的注解去掉;
c)修改DocumentRoot后的路径为 /web,这个是文档的主目录;
d)找到ScriptAlias /cgi-bin/ /usr/lib/cgi-bin
修改为ScriptAlias /cgi-bin/ /web/cgi-bin
e)【可选配置】修改MimeTypes /etc/mime.types为MimeTypes/web/mime.types来指明mime.types文件位置。如果没有以/开始,则表示从服务器的根路径开始。可以注释掉,避免使用mime.types文件,此时需要用AddType在本文件里指明。
若开启日志功能(boa.conf的缺省配置)
建立日志目录【目录/var/log/boa是相关的日志文件保存目录。】:
# mkdir -p /var/log/boa
目录/web/用于保存HTML文档,而/web/cgi-bin用于保存CGI脚本。
4、测试
编写cgi测试代码:
- int main(void)
- {
- printf("Content-type:text/html\n\n"); //这句一定要加上
- printf(" Hello,world.");
- exit(0);
- }
$gcc -o test.cgi test.c
在测试之前,需要先运行Boa Webserver。
$sudo boa
注意这里使用的是root权限,如果是普通用户可能会有报错。
# ps -aux 查看boa进程已经启动
然后打开浏览器,输入http://192.168.1.194/cgi-bin/test.cgi就可以看到cgi测试效果。
当然192.168.1.194是本机地址。可以使用ifconfig命令查看ip地址。然后输入也可以达到一样的效果。
# ifconfig
常见错误
错误1:
request.c: In function ‘get_request’:
request.c:84: warning: pointer targets in passing argument 3 of‘accept’ differ in signedness
gcc -g -O2 -pipe -Wall -I. -c -o response.o response.c
gcc -g -O2 -pipe -Wall -I. -c -o select.o select.c
gcc -g -O2 -pipe -Wall -I. -c -o signals.o signals.c
gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c
util.c:100:1: error: pasting "t" and "->" doesnot give a valid preprocessing token
make: *** [util.o] Error 1
解决办法:根据提示修改源码中的src/compat.h文件。
修改:#define TIMEZONE_OFFSET(foo)foo##->tm_gmtoff
为:#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
错误2:
[17/Aug/2013:09:28:17 +0000] boa.c:226 - icky Linux kernel bug!: Success
解决办法:注释掉boa.c的226行
BOA服务器搭建步骤的更多相关文章
- zedboard--基于zedboard的demo系统的boa服务器搭建(二十一)
zedboard提供的demo系统很迷你,但是也能移植嵌入式Web服务器的.这里就移植boa服务器. 1.下载Boa服务器源代码(安装好了交叉编译器) http://www.boa.org/,选择最后 ...
- linux下svn服务器搭建步骤
安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversion查看安装位置,如下图: 我们知道svn在bin目录下生成了几个二进制文件. 输入 sv ...
- 【Git】从服务器搭建到提交分支使用——初学者轻松上手篇
GitHub就是一个免费托管开源代码的远程仓库,个人可以把代码寄存处上面,不过会被公开.对于商业公司来说在Linux上搭建一台Git服务器作为私有仓库使用.开发人员在本地下载仓库代码,协同开发.本篇介 ...
- Rsync 服务器搭建
Rsync简介 rsync 是一个 Unix 系统下的文件同步和传输工具. 它具备以下特性: 1. 能更新整个目录和树和文件系统 2. 有选择性的保持符号链链.硬链接.文件属于.权限.设备以及时间 等 ...
- 手把手教你树莓派实现简易室内监控系统(C)之BOA服务器的搭建
本篇主要讲利用BOA服务器做室内监控系统的服务器端. 古人云:万事开头靠百度,实在不行就Google.小编也是一步一步的,亲自搭建成功,不能说是万全之策,仅仅是给大家一个参考就满足了. 第一步: 1. ...
- Ubuntu 10.04——boa服务器的搭建
声明:自从第一次发表博文不知不觉过去了好久了,非常抱歉没能把自己的东西分享出来,但是由于上家公司本月初裁员,所以致使学的新东西成了半成品,无奈又换了一家,目前已工作三周了,自己也很想写博文分享知识, ...
- 【ARM-Linux开发】Rico Board DIY系列实验教程 Day 2——搭建Boa服务器
一:BOA WebServer简介 BOA WebServer是一款单任务的HTTP服务器,与其他网页服务器不同之处,是当有连接请求到来是,它既不是为每个连接都单独创建进程,也不是采用复制自身进程处理 ...
- 基于微软hyper-v虚拟化服务器搭建方法和步骤整理
基于Microsoft基础设施私有云计算搭建 摘要:私有云是指组织机构建设的专供自己使用的云平台,它所提供的服务不是供他人使用,而是供自己的内部人员或分支机构使用,不同于公有云,私有云部署在企业内部网 ...
- 移植BOA服务器到开发板
移植BOA 服务器到GEC210 开发板 开发平台主机:VMWare--Ubuntu 10.04 LTS开发板:GEC210 / linux-2.6.35.7编译器:arm-linux-gcc-4.5 ...
随机推荐
- [Bzoj1767][Ceoi2009]harbingers (树上斜率优化)
1767: [Ceoi2009]harbingers Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 451 Solved: 120[Submit][S ...
- weblogic线程阻塞性能调优(图解)
转自:http://blog.csdn.net/z69183787/article/details/12647539 声明:出现这个问题有程序方面.网络方面.weblogic设置方面等等原因,此文章主 ...
- 学习swift从青铜到王者之swift结构体和类08
定义 // 定义类 class StudentC{ } // 定义结构体 struct StudentS{ } 定义存储属性 // 定义类 class StudentC{ var name:Strin ...
- 关于Android Service真正的全然具体解释,你须要知道的一切
转载请注明出处(万分感谢! ): http://blog.csdn.net/javazejian/article/details/52709857 出自[zejian的博客] Service全部内 ...
- Feign简介
Feign简介
- org.hibernate.AnnotationException: No identifier specified for entity:
使用hibernate的e-r映射pojo类的时候遇到org.hibernate.AnnotationException: No identifier specified for entity的异常, ...
- Mac 使用smb协议连接FTPserver
在Mac中,能够通过smb协议作为client连接到server,比如一个FTPserver,然后获取上面的共享文件. 方法: 1.在Finder菜单中点击前往 -- 连接server. 也能够Com ...
- IIS 配置 FTP 网站 H5 音频标签自定义样式修改以及添加播放控制事件
IIS 配置 FTP 网站 在 服务器管理器 的 Web服务器IIS 上安装 FTP 服务 在 IIS管理器 添加FTP网站 配置防火墙规则 说明:服务器环境是Windows Server 200 ...
- 安装SQLserver2008时出现的错误
1.SQLserver2008提示必须重新启动计算机才干够继续安装.解决方法例如以下: 在開始->执行中输入regedit,到HKEY_LOCAL_MACHINE\SYSTEM\CurrentC ...
- MVC+ZTree实现对树的CURD及拖拽操作
上一讲中,我们学习了如何使用zTree对一棵大树(大数据量的树型结构的数据表,呵呵,名称有点绕,但说的是事实)进行异步加载,今天这讲,我们来说说,如何去操作这棵大树,无非就是添加子节点,删除节点,编辑 ...