全部博文(333)
分类: LINUX
2012-03-17 15:31:22
今天终于完成了Boa web server的移植工作,本次移植的主要参考资料都来自于互联网,由于这些文章被转载得到处都是,我都不知道作者是谁。在这里衷心的感谢文章作者!!
一、Boa移植
1、下载Boa源码
下载地址: 目前最新发行版本: 0.94.13 (几年没更新版本了)
下载 boa-0.94.13.tar.gz(注意:若从boa上下载的是boa-0.94.13.tar.tar,解压方式一样)
解压:tar xzf boa-0.94.13.tar.gz
2、生成Makefile文件
进入boa-0.94.13,直接运行src/configure文件
cd src
./configure
3、修改Makefile文件(注意:必须用cross-2.95.3)
CC = /usr/local/arm/2.95.3/bin/arm-linux-gcc
CPP = /usr/local/arm/2.95.3/bin/arm-linux-gcc -E
4、交叉编译
make
5、去除调试信息,减小体积。(可选)
arm-linux-strip boa
6、将编译好的程序放入根文件系统的/usr/sbin目录下。 (网上说要放在bin下,但提示not found)
cp boa /opt/studyarm/rootfs/usr/sbin/
二、配置Boa
Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改。
cp /opt/studyarm/rootfs/etc/
mkdir boa
chmod 777 boa/
cd boa
cp /opt/studyarm/boa-0.94.13/boa.conf .
vi boa.conf
1、Group的修改
修改 Group nogroup 为 Group 0(开发板上有的组,或者为0)
修改 User nobody (user组中有这个成员,不修改也可以)
根据你的开发板的情况设定。一定要存在的组和用户。
2、ScriptAlias的修改
修改 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 为 ScriptAlias /cgi-bin/ /var/www/cgi-bin/
这是在设置CGI的目录,你也可以设置成别的目录。比如用户文件夹下的某个目录。
3、ServerName的设置
修改 #ServerName 为 ServerName
注 意:该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::No such file or directory”,所以必须打开。其它默认设置即可。你也可以设置为你自己想要的名字。比如我设置为:huang- tomey.blog.163.com
此外,还需要将mime.types文件复制/etc目录下,通常可以从linux主机的 /etc目录下直接复制即可。
(以下配置和boa.conf的配置有关)
创建日志文件所在目录/var/log/boa
mkdir -m 777 /boa
创建HTML文档的主目录/var/www
cd ..
mkdir -m 777 www
创建CGI脚本所在录 /var/www/cgi-bin
mkdir -m 777 www/cgi-bin
cd ..
cp /etc/mime.types etc/
三、运行Boa
开发板操作:
[root@H3-studio]#./usr/sbin/boa
如果发现boa没有运行,则可以在开发板的/var/log/boa/error_log文件中找原因。
cat /var/log/boa/error_log
四、功能测试
静态网页测试
将静态网页存入根文件系统的/var/www目录下(可以将主机 /usr/share/doc/HTML/目录下的index.html和img目录复制到/var/www目录下)
在根文件系统的/var目录下
cp /usr/share/doc/HTML/index.html www/
cp -r /usr/share/doc/HTML/img www/
直接在浏览器中输入开发板的IP地址(比如我的是01) ,出现Redhat的网页。静态HTML调试成功。
CGI功能测试
1、 编写HelloworldCGI.c程序
cd /opt/studyarm/rootfs/var/www/cgi-bin/
vi helloworldCGI.c
(主程序的程序开头一定要用Tab,而不是空格,不然编译可能不通过)
#include
#include
int main(void)
{
printf("Content-type: text/html\n\n");
printf("\n");
printf("
printf("
\n");printf("
printf("
\n");printf("\n");
exit(0);
}
2.交叉编译生成CGI程序
linux-gnu-gcc -o helloworldCGI helloworldCGI.c
3.测试浏览器输入
网页出现 Hello,world. 调试成功!