最近在做项目需要移植appweb作为服务器,由于是第一次接触appweb,所以把操作记录下来:
1、获取appweb源码:
到网址:http://appwebserver.org/downloads/appweb/download.esp
我下载的是appweb-4.6.5版本
2、编译:
解压:tar -zxvf appweb-4.6.5.tar.gz -C appweb/external
cd /appweb/external/appweb-4.6.5/projects/
a、制作交叉编译配置文件
cp appweb-linux-default.mk appweb-linux-arm.mk
cp appweb-linux-default-me.h appweb-linux-arm-me.h
这两个文件中有很多可选的选项,可以添加、删除自己所需的配置。
b、修改appweb-linuxt-arm.mk文件
ARCH := arm
CC :=linux-arm-gcc (交叉编译工具)
把该文件中所有的appweb-linux-default-me.h 修改为 appweb-linux-arm-me.h(共有三处)
c、编译
make -f projects/appweb-linux-arm.mk
d、安装
Make install
安装完成后,会在build目录下生成linux-arm-default目录,所有的可执行文件及库文件都在该目录下的对应目录里。
3、appweb测试、移植
我选择先使用nfs测试成功后,在移植到开发板上由于系统之前没有安装nfs服务,所以在这里唠叨一下nfs服务器的安装
a、Ubuntu12.04下安装nfs服务器
apt-get install nfs-kernel-server
b、修改/etc/exports
/nfs *(insecure,rw,async,no_root_squash)
c、在根目录下创建nfs目录,并修改其权限
Mkdir /nfs
Chmod 777 /nfs -R
d、把appweb-4.6.5/build/linux-arm-default拷贝到nfs
e、在nfs下创建web文件夹,在文件夹里面创建appwe.conf、index.html文件
Appweb.conf内容如下:
ErrorLog "stdout" level=2
Listen 192.168.1.232
LoadModule espHandler libmod_esp
AddHandler espHandler esp
DirectoryIndex index.esp
AddHandler fileHandler ""
Index.html内容如下:
<html>
<head> <title>hello</title> </head>
<body>
<h1>hello world!</h1>
</body>
</html>
f、在开发板上挂载nfs
mount -t nfs -o nolock 宿主机IP:/nfs /mnt
g、导出库文件路径
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/linux-arm-default/bin
g、运行appweb
./appweb --home /mnt/web --config /mnt/web/appweb.conf
h、在浏览器上输入http://192.168.1.232/index.html就会出现“helloworld !”
移植测试成功,可以直接把相关的库文件移植到开发板上。