分类: LINUX
2011-01-25 09:55:56
有些时间没有来写笔记了,最近一直在摸索embedded linux。把一直想要做的web server终于弄出来了,特总结一下。有些资源是参考网络的。
一。完成Boa程序的移植。
从下载Boa源码,当前最新版本为0.94.13,将其解压并进入源码目录的src子目录
# tar xzf boa-0.94.13.tar.gz
# cd boa-0.94.13/src
生成Makefile文件
# ./configure
修改Makefile文件,找到CC=gcc,将其改成CC =.../ arm-linux-gcc(写上你完整的路径),再找到CPP = gcc –E,将其改成CPP = .../arm-linux-gcc –E,并保存退出。
然后运行make进行编译,得到的可执行程序为boa,将调试信息剥去,得到的最后程序只有约60KB大小。
# make
# arm-linux-strip boa //剥去调试信息
二。完成Boa的配置-boa.conf。
使其能够支持CGI程序的执行。在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改,下面解释一下该文件几个最基本选项的含义:
#监听的端口号,缺省都是80,一般无需修改
Port 80
#作为哪个用户运行,即它拥有该用户的权限,一般都是nobody,需要/etc/passwd中有nobody用户,没有就创建一个。
User nobody
#作为哪个用户组运行,即它拥有该用户组的权限,一般都是nogroup,需要在/etc/group文件中有nogroup组,没有就创建一个。
Group nogroup
#错误日志文件。如果没有以/开始,则表示从服务器的根路径开始。如果不需要错误日志,则用#/dev/null。在下面设置时,注意一定要建立/var/log/boa目录
ErrorLog /var/log/boa/error_log
#服务器名字
ServerName
#非常重要,HTML文档的主目录。如果没有以/开始,则表示从服务器的根路径开始。
DocumentRoot /var/www
#如果收到一个用户请求的话,在用户主目录后再增加的目录名
UserDir public_html
#HTML目录索引的文件名,也是没有用户只指明访问目录时返回的文件名
DirectoryIndex index.html
#一个连接所允许的HTTP持续作用请求最大数目,注释或设为0都将关闭HTTP持续作用
KeepAliveMax 1000
#HTTP持续作用中服务器在两次请求之间等待的时间数,以秒为单位,超时将关闭连接
KeepAliveTimeout 10
#指明mime.types文件位置。如果没有以/开始,则表示从服务器的根路径开始。可以注释掉
#避免使用mime.types文件,此时需要用AddType在本文件里指明
MimeTypes /etc/mime.types
#文件扩展名没有或未知的话,使用的缺省MIME类型
DefaultType text/plain
#提供CGI程序的PATH环境变量值
CGIPath /bin:/usr/bin:/usr/local/bin
#为路径加上别名
Alias /doc /usr/doc
#非常重要,指明CGI脚本的虚拟路径对应的实际路径。一般所有的CGI脚本都要放在实际路径里,用户访问执行时输入站点+虚拟路径+CGI脚本名
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
可以根据自己需要,对boa.conf进行修改,但必须要保证其他的文件路径和设置必须和boa.conf里的配置相符,不然Boa就不能正常工作。