HTTP服务器移植

 

1.前期准备

lighttpd-1.4.32.tar.gz VMware+Ubuntu 交叉编译器 ARM开发板

2.中期执行

创建本实验主目录HTTP,进入主目录HTTP,将lighttpd-1.4.32.tar.gz 拷贝到此目录

#mkdir HTTP

#cd HTTP

HTTP服务器移植

查看拷贝进去的压缩包

#ls

HTTP服务器移植

解压压缩包

#tar -vxf lighttpd-1.4.32.tar.gz

HTTP服务器移植

查看解压结果

HTTP服务器移植

创建文件安装目录

#mkdir install

HTTP服务器移植

进入lighttpd-1.4.32 文件

#cd lighttpd-1.4.32

HTTP服务器移植

配置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

HTTP服务器移植

HTTP服务器移植

查看配置结果(重点是:找到是否生成Makefile文件)

#ls

HTTP服务器移植

make编译

HTTP服务器移植

编译过程

HTTP服务器移植

make install安装

HTTP服务器移植

安装过程

HTTP服务器移植

安装完成在安装目录install生成文件,通过ls查看

#cd ../install/

#ls

HTTP服务器移植

创建实验所需要的目录文件,cache cgi-bin config log sockets upload vhosts webpages

#mkdir cache cgi-bin config log sockets upload vhosts webpages

#ls

HTTP服务器移植

进入./HTTP/lighttpd-1.4.32/doc/config 目录

#cd ../HTTP/lighttpd-1.4.32/doc/config

#ls

HTTP服务器移植

将 ../HTTP/lighttpd-1.4.32/doc/config 目录下的文件拷贝到 /home/QianRuShi/HTTP/install/config/

HTTP服务器移植

查看拷贝过去的文件

#ls /home/QianRuShi/HTTP/install/config/

HTTP服务器移植

修改 /home/QianRuShi/HTTP/install/config/目录下 lighttpd.conf

#vim lighttpd.conf

HTTP服务器移植

vim 方式打开文件

在底端模式下输入set nu 使其显示行码

#set nu

HTTP服务器移植

  • 将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"

 

HTTP服务器移植

  •  将61行修改为

var.cache_dir   = server_root + "/cache"

HTTP服务器移植

  • 将93行修改为

server.use-ipv6=”disable”

HTTP服务器移植

  • 将104行、105行注释掉

HTTP服务器移植

  • 将115行修改为

server.document-root = server_root + “/webpages”

将127行注释掉

#server.pid-file = state_dir + "/lighttpd.pid"

 

HTTP服务器移植

  • 141行 为错误日志文件,如果不需要可以注释掉(我没有注释)

#server.pid-file = state_dir + "/lighttpd.pid"

将152行、158行注释掉

#include "conf.d/access_log.conf"

#include "conf.d/debug.conf"

HTTP服务器移植

  • 将191行注释掉

#server.network-backend = "linux-sendfile"

HTTP服务器移植

  • 根据系统资源配置 207行、225行的数值,本系统的设置为(原来的数值太大了)

server.max-fds = 256

server.max-connections = 128

 

HTTP服务器移植

  • 将314行 至 316行注释掉

#$HTTP["url"] =~ "\.pdf$" {

#  server.range-requests = "disable"

#}

 

HTTP服务器移植

  • 将373行修改为

server.upload-dirs = ( "/mnt/nfs/HTTP/install/upload" )

HTTP服务器移植

以vim方式打开/home/QianRuShi/HTTP/install/config 目录下的modules.conf

HTTP服务器移植

  • 在第43行后面插入

“mod_alias”,

HTTP服务器移植

  • 将138行的注释解除掉,能使CGI模块

include "conf.d/cgi.conf"

HTTP服务器移植

以vim方式打开/home/QianRuShi/HTTP/install/config/conf.d 目录下的cgi.conf

HTTP服务器移植

  • 将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" )

HTTP服务器移植

  • 将第28行左右的注释去掉

alias.url += ( "/cgi-bin" => server_root + "/cgi-bin" )

HTTP服务器移植

切换至/home/QianRuShi/HTTP/install/webpages目录下 编写HTML网页文件index

#vim index

HTTP服务器移植

编写内容如下

HTTP服务器移植

重命名为index.html

#mv index index.html

HTTP服务器移植

切换目录至/home/QianRuShi/目录下,将HTTP文件拷贝到nfs服务共享目录/nfsroot下

#cp -r ./HTTP/ /nfsroot

HTTP服务器移植

配置工作已完成,下面进行移植、链接、测试:

通过串口,网线实现arm开发板与虚拟机通信,(串口通,网络通)

  • 串口通:

Xshell连接的arm开发板

查看ip

#ifconfig

HTTP服务器移植

配置ip、子网掩码(使虚拟机ip在同一时段,子网掩码相同)

#ifconfig eth0 10.25.100.78 netmask 255.255.0.0

HTTP服务器移植

nfs 挂载

#mount -o nolock 10.25.100.79:/nfsroot /mnt/nfs

 

切换至/mnt/nfs 目录下

#cd /mnt/nfs

HTTP服务器移植

切换至/mnt/nfs/HTTP

#cd HTTP

HTTP服务器移植

查看/mnt/nfs/HTTP/install/sbin 目录下的文件

#ls install/sbin

HTTP服务器移植

切换至/mnt/nfs/HTTP/install/sbin目录下,执行以下操作

#./lighttpd -f ../config/lighttpd.conf -m /mnt/nfs/HTTP/install/lib

(-f 文件名;-m .so库路径)

HTTP服务器移植

在win系统上测试效果

HTTP服务器移植

HTTP服务器移植

在Ubuntu上测试效果

HTTP服务器移植

 

测试成功,关闭服务器

#killall lighttpd

HTTP服务器移植

再次浏览网页

HTTP服务器移植

HTTP服务器移植

HTTP服务器移植

 

 

 

至此实验完成

3.后期总结

通过HTTP服务器的移植,体验到了移植的难点与重点,在重多文件的带动下,想要使其联系在一起,组成一个实验项目,则文件的路径是整个实验的联系纽带。ARM与X86平台的不同使得我们在宿主机编译时使用交叉编译器,修改其中的文件配置数据。在软件移植过程中,步骤并不算太难,但难的是我们不知道为何需要这样做,这么做是在做什么。学习能力的提升,并不只是靠编写,还要靠冷静的思考,细致的分析。