作者:帅得不敢出门 C++爱好者灌水天堂群 3503799 转载请保留此信息
步骤大部分都一样吧,只是交叉编译器会有不同.
第一步Boa 程序的移植
目标板为xscale pxa270 ,交叉编译器arm-linux-gcc
去网上下了一份源代码
Latest Released Version (0.94.13) here (signature here)
点击here弹出文件下载窗口下载它
解压出来
# tar zxvf boa-0.94.13.tar.gz
进入 src目录
# cd boa-0.94.13/src
生成Makefile文件
# ./configure
修改Makefile
# vi Makeifle
找到CC=gcc
改成CC = arm-linux-gcc
找到CPP = gcc –E
改成CPP = arm-linux-gcc –E
如果直接make的话,会出现如下error
util.c:100:40: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1
修改src/compat.h:
# vi compat.h
找到
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
编译
# make
剥离调试信息
# arm-linux-strip boa
完成
二、Boa 的配置和安装
跳到上一个目录
# cd ..
# vi boa.conf
1.修改Group nogroup为Group 0 设置成只有root用户才可执行boa服务
2.ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 改成ScriptAlias /cgi-bin/ /var/www/cgi-bin/
3. 去掉#ServerName 前面的#号
其他几个有用的信息:(MimeTypes: This is the file that is used to generate mime type pairs
and Content-Type fields for boa.)
MimeTypes /etc/mime.types
(CGIPath: The value of the $PATH environment variable given to CGI progs.)
CGIPath /bin:/usr/bin:/usr/local/bin
(# ErrorLog: The location of the error log file. )
ErrorLog /var/log/boa/error_log
在目标板上的Linux 中建立相应的目录
mkdir /etc/boa Boa 配置文件的目录
mkdir /var/log
mkdir /var/log/boa Log 文件的目录
mkdir /var/www Boa 服务的根目录
mkdir /var/www/cgi-bin CGI 文件的目录
把boa拷贝到--->目标板下的/usr/bin或者/usr/local/bin下(CGIPath)
index.html以及相应的静态网页文件-->/var/www
mime.types可以在主机的/etc 下找到--->/etc
boa.conf 修改后的配置文件--->/etc/boa
设置好网络参数,后台运行boa:
boa &
将主机与目标平台的IP设成同一网段,然后打开任一个浏览器(linux或windows下都可),
输入目标平台的ip地址(http//192.168.0.50/)即可打开/var/www/index.html网页
三、CGI 脚本测试
建立一个helloworld.c
#include
int main(void)
{
printf("Content-type: text/html\n\n");
printf("\n");
printf("CGI Output\n");
printf("\n");
printf("Hello,world.
\n");
printf("\n");
printf("\n");
exit(0);
}
编译
# arm-linux-gcc -o helloworld.cgi helloworld.c
将生成的helloworld.cgi 拷贝到目标板上的/var/www/cgi-bin 中,并在浏览器中输入:
即可看见相应的结果
阅读(2891) | 评论(0) | 转发(0) |