HTTP服务器移植
1.前期准备
lighttpd-1.4.32.tar.gz VMware+Ubuntu 交叉编译器 ARM开发板
2.中期执行
创建本实验主目录HTTP,进入主目录HTTP,将lighttpd-1.4.32.tar.gz 拷贝到此目录
#mkdir HTTP
#cd HTTP
查看拷贝进去的压缩包
#ls
解压压缩包
#tar -vxf lighttpd-1.4.32.tar.gz
查看解压结果
创建文件安装目录
#mkdir install
进入lighttpd-1.4.32 文件
#cd lighttpd-1.4.32
配置configure
#./configure --host=arm-linux --prefix=/home/QianRuShi/HTTP/install --build=i386 --enable-shared --disable-FEATURE --enable-shared --disable-static --disable-lfs --disable-ipv6 --without-PACKAGE --without-valgrind --without-openssl --without-keerberos5 --without-pcre --without-zlib --without-bzip2 --without-lua CC=arm-none-linux-gnueabi-gcc
查看配置结果(重点是:找到是否生成Makefile文件)
#ls
make编译
编译过程
make install安装
安装过程
安装完成在安装目录install生成文件,通过ls查看
#cd ../install/
#ls
创建实验所需要的目录文件,cache cgi-bin config log sockets upload vhosts webpages
#mkdir cache cgi-bin config log sockets upload vhosts webpages
#ls
进入./HTTP/lighttpd-1.4.32/doc/config 目录
#cd ../HTTP/lighttpd-1.4.32/doc/config
#ls
将 ../HTTP/lighttpd-1.4.32/doc/config 目录下的文件拷贝到 /home/QianRuShi/HTTP/install/config/
查看拷贝过去的文件
#ls /home/QianRuShi/HTTP/install/config/
修改 /home/QianRuShi/HTTP/install/config/目录下 lighttpd.conf
#vim lighttpd.conf
vim 方式打开文件
在底端模式下输入set nu 使其显示行码
#set nu
- 将16行至20行修改为
var.log_root = "/mnt/nfs/HTTP/install/log"
var.server_root = "/mnt/nfs/HTTP/install"
var.state_dir = "/mnt/nfs/HTTP/install"
var.home_dir = "/mnt/nfs/HTTP/install"
var.conf_dir = "/mnt/nfs/HTTP/install/config"
- 将61行修改为
var.cache_dir = server_root + "/cache"
- 将93行修改为
server.use-ipv6=”disable”
- 将104行、105行注释掉
- 将115行修改为
server.document-root = server_root + “/webpages”
将127行注释掉
#server.pid-file = state_dir + "/lighttpd.pid"
- 141行 为错误日志文件,如果不需要可以注释掉(我没有注释)
#server.pid-file = state_dir + "/lighttpd.pid"
将152行、158行注释掉
#include "conf.d/access_log.conf"
#include "conf.d/debug.conf"
- 将191行注释掉
#server.network-backend = "linux-sendfile"
- 根据系统资源配置 207行、225行的数值,本系统的设置为(原来的数值太大了)
server.max-fds = 256
server.max-connections = 128
- 将314行 至 316行注释掉
#$HTTP["url"] =~ "\.pdf$" {
# server.range-requests = "disable"
#}
- 将373行修改为
server.upload-dirs = ( "/mnt/nfs/HTTP/install/upload" )
以vim方式打开/home/QianRuShi/HTTP/install/config 目录下的modules.conf
- 在第43行后面插入
“mod_alias”,
- 将138行的注释解除掉,能使CGI模块
include "conf.d/cgi.conf"
以vim方式打开/home/QianRuShi/HTTP/install/config/conf.d 目录下的cgi.conf
- 将15行至19行左右这一段配置修改为
cgi.assign = (".cgi" => "")
#cgi.assign = ( ".pl" => "/usr/bin/perl",
# ".cgi" => "/usr/bin/perl",
# ".rb" => "/usr/bin/ruby",
# ".erb" => "/usr/bin/eruby",
# ".py" => "/usr/bin/python" )
- 将第28行左右的注释去掉
alias.url += ( "/cgi-bin" => server_root + "/cgi-bin" )
切换至/home/QianRuShi/HTTP/install/webpages目录下 编写HTML网页文件index
#vim index
编写内容如下
重命名为index.html
#mv index index.html
切换目录至/home/QianRuShi/目录下,将HTTP文件拷贝到nfs服务共享目录/nfsroot下
#cp -r ./HTTP/ /nfsroot
配置工作已完成,下面进行移植、链接、测试:
通过串口,网线实现arm开发板与虚拟机通信,(串口通,网络通)
- 串口通:
Xshell连接的arm开发板
查看ip
#ifconfig
配置ip、子网掩码(使虚拟机ip在同一时段,子网掩码相同)
#ifconfig eth0 10.25.100.78 netmask 255.255.0.0
nfs 挂载
#mount -o nolock 10.25.100.79:/nfsroot /mnt/nfs
切换至/mnt/nfs 目录下
#cd /mnt/nfs
切换至/mnt/nfs/HTTP
#cd HTTP
查看/mnt/nfs/HTTP/install/sbin 目录下的文件
#ls install/sbin
切换至/mnt/nfs/HTTP/install/sbin目录下,执行以下操作
#./lighttpd -f ../config/lighttpd.conf -m /mnt/nfs/HTTP/install/lib
(-f 文件名;-m .so库路径)
在win系统上测试效果
在Ubuntu上测试效果
测试成功,关闭服务器
#killall lighttpd
再次浏览网页
至此实验完成
3.后期总结
通过HTTP服务器的移植,体验到了移植的难点与重点,在重多文件的带动下,想要使其联系在一起,组成一个实验项目,则文件的路径是整个实验的联系纽带。ARM与X86平台的不同使得我们在宿主机编译时使用交叉编译器,修改其中的文件配置数据。在软件移植过程中,步骤并不算太难,但难的是我们不知道为何需要这样做,这么做是在做什么。学习能力的提升,并不只是靠编写,还要靠冷静的思考,细致的分析。