Boa Web服务器在PC和S3C2440开发板上移植

本文介绍Boa Web服务器的下载、配置、编译及优化过程,包括配置文件boa.conf的修改细节。
   转自:http://www.cnblogs.com/jobschu/archive/2013/02/25/2931750.html

boa是一个非常小巧的Web服务器,可执行代码只有约60KB。它是一个单任务Web服务器,只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。下面我们讲解以下boa如何在PC机(虚拟机RedHatAS5环境)完成移植修改工作。
一、下载Boa源码
    下载地址:
    http://www.boa.org/或 http://labs.nevion.com/open-source/ 目前最新发行版本:0.94.13(05年更新版本)
  下载 boa-0.94.13.tar.gz(注意:若从boa上下载的是boa-0.94.13.tar.tar,解压方式一样)
  解压:tar xzf boa-0.94.13.tar.gz
二、配置编译boa
  1、#mv boa-0.94.13 boa_pc
   2、#cd boa_pc/src
   3、#vim defines.h修改#define SERVER_ROOT "/etc/boa"统一为“/home/boa”。
    SERVER_ROOT为boa启动时的配置文件boa.conf存放路径,这里我们统一为/home/boa
  4、修改src/boa.c。注释掉语句。
     即修改为:
    #if 0
     if(setuid(0) != -1)
     {
     DIE(icky linux kernel bug!);
    }
     #endif
    否则运行时会提示:boa.c:226 -icky linux kernel bug!:no suchfile or directory
     这里我粗略的理解是因为在root用户获取0(root)权限失败导致不能正常运行!
  5、#./configure 生成makefile
  6、修改交叉编译器(此处为PC与开发板不同之处)
     将:CC= gcc  CPP=gcc -E
     改为:CC=arm-linux-gcc  CPP=arm-linux-gcc -E
  7、#make 编译
     在当前目录下生成一个boa的可执行程序,./boa运行即可,ps能看到的boa,及说明boa能正常工作了。
    注意:
    1)、有些编译器会提示以下错误,按照下面方法解决即可:
      util.c: 100: 1: pasting"t"and"->"does not give a valid preprocessing token make: [util.o] Error1	
      解决方法:修改compat.h中的:
      #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
      为:
      #define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
    2)、yacc命令找不到
	  执行命令:#sudo apt-get install flex bison
  8、#strip boa 优化boa
    这里的优化就是去除boa中的调试信息。
三、修改配置文件boa.conf
  1.建立/home/boa目录, 并复制boa.conf到/home/boa目录下,并按照以下步骤进行修改。
     #mkdir /home/boa
     #cp boa.conf /home/boa
  2.访问端口号设置
   大概25左右:Port 80,可以设定我们访问网页时的端口号默认为80—访问时无需指定
   假如改变了此端口号为8080,必须以下列格式访问: http://192.168.1.3:8080
    一般在同一个电脑上运行多个boa服务器时可采用此方法我们这里保持默认即可
  3.修改访问权限:
     修改User nobody 为 user 0
     修改Group nogroup 为 group 0
   4.设定日志目录:boa日志有两部分,Errorlog  和 AccessLog
     默认为/var/log/boa/error_log和/var/log/boa/access_log两个文件。
     所以我们统一修改为:
     ErrorLog /home/boa/error_log
     AccessLog /home/boa/access_log
     (注意:这里/home/boa目录必须为可写,否则会出项错误:log.c:73 – Unable to dup2 the error log: Bad file r.)
   5.设置html文件目录: 
     默认为:DocumentRoot /var/www
     我们统一修改为:
     DocumentRoot /home/boa/www
  6.设置默认首页: DirectoryIndex index.html
     这是访问网页时若不指定访问的网页名称,服务器默认返回的网页,我们不做修改
   7.设置cgi脚本目录:
       将ScriptAlias /cgi-bin/ /usr/lib/cgi-bin 
      修改为
       ScriptAlias /cgi-bin/ /home/boa/cgi-bin
       注:boa提供cgi编程接口,使得网页具有交互能力,后面我们在做讲解.
   8.测试
      在/home/boa/www中随意放一个测试网页(必须包含index.html文件)  
      我们这里随便建一个文件取名为index.html,里面写一个:hello boa...
       执行#./boa
      在IE中敲入:http://192.168.1.101/ 即可看到刚才的helloo boa
      证明整个boa搭建成功.
需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)内容概要:本文围绕“需求响应动态冰蓄冷系统与需求响应策略的优化研究”展开,基于Matlab代码实现,重点探讨了冰蓄冷系统在电力需求响应背景下的动态建模与优化调度策略。研究结合实际电力负荷与电价信号,构建系统能耗模型,利用优化算法对冰蓄冷系统的运行策略进行求解,旨在降低用电成本、平衡电网负荷,并提升能源利用效率。文中还提及该研究为博士论文复现,涉及系统建模、优化算法应用与仿真验证等关键技术环节,配套提供了完整的Matlab代码资源。; 适合人群:具备一定电力系统、能源管理或优化算法基础,从事科研或工程应用的研究生、高校教师及企业研发人员,尤其适合开展需求响应、综合能源系统优化等相关课题研究的人员。; 使用场景及目标:①复现博士论文中的冰蓄冷系统需求响应优化模型;②学习Matlab在能源系统建模与优化中的具体实现方法;③掌握需求响应策略的设计思路与仿真验证流程,服务于科研项目、论文写作或实际工程方案设计。; 阅读建议:建议结合提供的Matlab代码逐模块分析,重点关注系统建模逻辑与优化算法的实现细节,按文档目录顺序系统学习,并尝试调整参数进行仿真对比,以深入理解不同需求响应策略的效果差异。
综合能源系统零碳优化调度研究(Matlab代码实现)内容概要:本文围绕“综合能源系统零碳优化调度研究”,提供了基于Matlab代码实现的完整解决方案,重点探讨了在高比例可再生能源接入背景下,如何通过优化调度实现零碳排放目标。文中涉及多种先进优化算法(如改进遗传算法、粒子群优化、ADMM等)在综合能源系统中的应用,涵盖风光场景生成、储能配置、需求响应、微电网协同调度等多个关键技术环节,并结合具体案例(如压缩空气储能、光热电站、P2G技术等)进行建模与仿真分析,展示了从问题建模、算法设计到结果验证的全流程实现过程。; 适合人群:具备一定电力系统、能源系统或优化理论基础,熟悉Matlab/Simulink编程,从事新能源、智能电网、综合能源系统等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展综合能源系统低碳/零碳调度的科研建模与算法开发;②复现高水平期刊(如SCI/EI)论文中的优化模型与仿真结果;③学习如何将智能优化算法(如遗传算法、灰狼优化、ADMM等)应用于实际能源系统调度问题;④掌握Matlab在能源系统仿真与优化中的典型应用方法。; 阅读建议:建议结合文中提供的Matlab代码与网盘资源,边学习理论模型边动手调试程序,重点关注不同优化算法在调度模型中的实现细节与参数设置,同时可扩展应用于自身研究课题中,提升科研效率与模型精度。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值