声明:自从第一次发表博文不知不觉过去了好久了,非常抱歉没能把自己的东西分享出来,但是由于上家公司本月初裁员,所以致使学的新东西成了半成品,无奈又换了一家,目前已工作三周了,自己也很想写博文分享知识,但是学的东西太杂,有都是半成品,确实不知道以什么为切入点,目前这家公司最近一直在做项目,我想先一点点的写吧,虽然我的东西能在网上找到很多样本,但是我感觉有的不全,还是自己总结的东西比较靠谱,希望对大家有所帮助,如果有新问题,我会不断更新的,好了,废话不多说了。。。

               Ubuntu 10.04配置boa服务器

一、下载boa源码(root权限下的命令行):

  # wget http://www.boa.org/boa-0.94.13.tar.gz

  解压:# tar zxvf boa-0.94.13.tar.gz

(解压前建议单独建立一个boa文件:# mkdir boa)

二、安装需要的工具:bison、flex;

(这两个工具我也没弄清楚具体干什么的,在网上查查只知道是什么语法解析器和扫描器,我看网上大部分说明都有这个步骤)

  # apt-get install bison flex

三、生成Makefile文件:

  # cd boa-0.94.13/src

  # ./configure

四、为了保证make不出现错误的话必须修改一些文件:

(为了更方便了解以下步骤的操作目的,建议再打开一个终端,打开相应文件对比着看就明白了)

1、boa配置文件 boa.conf 的路径的设定:

此文件的路径应与src/defines.h 中SERVER_ROOT "/etc/boa" 的值一致:

  # cd /etc/

  # mkdir boa

  # cp /home/qiang/share/boa/boa-0.94.13/boa.conf /etc/boa -R(前面是我的文件所在目录)

  之后再回到boa/src下:# make

  这时会报错:

util.c:100:1:error:pasting "t" and "->" does not give a valid preprocessing token

修改compat.h:

  # vi compat.h(在编辑模式下:/foo##快速找到以下语句)

将 #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 改为:

#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

修改boa.c:

  # vi boa.c

将以下四行注释掉:

    if(setuid(0) != -1)

    {   

      DIE(”icky Linux kernel bug!”);

    }

否则启动boa时会出现:

boa.c:226 - icky Linux kernel bug!No such file or directory!

(有的版本中没有这个提示,但是我的出现了,所以经过查找才得以解决)

  # make

五、在启动src/boa前需修改配置文件:

  # vi /etc/boa/boa.conf

1、修改 servername 去掉注释(#),修改User nobody 和 Group nogroup 改为 User 0 、Group 0;

2、定义的是web服务器的文件根目录,即设定的值 DocumentRoot 默认为 "/var/www"

  # cd /var/

  # mkdir www

  # chmod 777 www

3、配置日志文件的目录及日志文件:

(1)错误报告 ErrorLog 默认位置:/var/log/boa/error_log

(2)访问报告 AccessLog 默认位置:/var/log/boa/access_log

  # mkdir log/boa -p(/var目录下)

  # chmod 777 log/boa -R

  # touch error_log/touch access_log

(这两个文件可以帮助你查看后期操作游览器的访问状态信息)

4、cgi程序的存放:

  # vi /etc/boa/boa.conf

将最后一行 ScriptAlias  /cgi-bin  /usr/lib/cgi-bin/ 改为:

ScriptAlias  /cgi-bin  /var/www/cgi-bin(用于存放.cgi文件)

(建议后期在web开发下自己创建www文件夹时创建cgi-bin文件夹,再后期运行时可直接将整个www文件下的文件全部cp过来)

  启动boa服务器:

切换到初期解压的源码目录下: # cd src/

  # ./boa

ps -e 查看是否存在 boa 进程,若无,则查看错误报告,若提示:

[23/Apr/2012:23:58:59 +0000] boa.c:194 -unable to bind:Address already in use

此句表示端口被占用,boa服务器默认的端口是 80 ,比如 ngix 服务器默认的端口也是 80 ,所以会存在这种情况的发生,为了避免这一错误,我们一般修改端口为8080:

  # vi /etc/boa/boa.conf

将 Port 80 改为 Port 8080

此时再 ps -e 查看进程,若存在 boa 则证明成功!好了,kill掉进程重启一下进行测试吧!

六、测试程序:

在/var/www/下建立index.html文件:# vi index.html(没法插如图片,只能粘贴如下)

<!DOCTYPE html>

<html>   

  <head>     

    <meta http-equiv="content-type" content="text/html; charset=gb2312" />     

    <title>This is a test program!</title>   

  </head>
  <body>     

    <h1>This is a test!</h1>     

    <br />     

    <br />     

    <a href="./cgi-bin/test.cgi">To cgi page!</a>    

  </body>

</html>

  # mkdir /var/www/cgi-bin -R

  # cd cgi-bin

  # vi test.c

  include <stdio.h>

  int main()   

  {     

    printf("Content-type:text/html\n\n");// 这句必须存在;     

    printf("<html><body>");     

    printf("<font style=\"color:red;font-size:30px;\">Hello CGI!</font><br />");     

    printf("<a href=\"../index.html\">return index.html</a>");     

    printf("</body></html>");     

    return 0;   

  }

  # gcc test.c -o test.cgi

然后打开游览器,输入虚拟机地址或127.0.0.1:8080(端口号已改),这样就能看到刚刚写的页面了。。。

Ubuntu 10.04——boa服务器的搭建的更多相关文章

  1. [转]ubuntu 10.04下的配置tftp服务器

    [转]ubuntu 10.04下的配置tftp服务器 http://www.cnblogs.com/geneil/archive/2011/11/24/2261653.html 第1步:安装tftp所 ...

  2. Ubuntu 10.04下架设流媒体服务器

    Ubuntu 10.04下架设流媒体服务器 个人建议:使用DarwinStreamingSrvr5.5.5,因为DarwinStreamingSrvr6.0.3安装过程中有很多问题需要解决! 目前主流 ...

  3. 用zd1211+Ubuntu 10.04实现的AP

    [日期:2010-06-24]   zd1211 在Ubuntu 10.04 LTS上的master mode 的问题解决之后,理论上就可以把zd1211 USB网卡用来做一个AP了,实际上还有几个问 ...

  4. Ubuntu 10.04 32位桌面版+OpnERP 6.1.1

      1.准备环境: sudo apt-get install denyhosts sudo apt-get update sudo apt-get dist-upgrade sudo adduser ...

  5. ubuntu 10.04 安装qt 5.0.2

    转自ubuntu 10.04 安装qt 5.0.2 从qt project网站下载下来最新的qt5.0.2套件,发现是个.run文件,添加x属性,然后直接sudo ./****.run, 提示  /l ...

  6. 【转】Ubuntu 10.04 LTS 的窗口控制按钮从左上角调整到右上角

    原文网址:http://www.linuxidc.com/Linux/2010-05/26111.htm 升级到Ubuntu 10.04后最大的问题,是最小最大和关闭按钮,放到了左边.这叫Ubuntu ...

  7. 解决:“Ubuntu 10.04 LTS _Lucid Lynx_ - Release i38...

    编译android源码,找不到g++.通过apt-get下载时候,总是提示“Ubuntu 10.04 LTS _Lucid Lynx_ - Release i386 (20100429)” 的盘片插入 ...

  8. Using iSCSI On Ubuntu 10.04 (Initiator And Target)

    This guide explains how you can set up an iSCSI target and an iSCSI initiator (client), both running ...

  9. Ubuntu 10.04下如何查看分区的UUID

    Ubuntu 10.04通过UUID来区分各个磁盘分区,在/etc/fstab配置文件中就是通过UUID来挂载分区的.UUID,英文全称为:Universally Unique Identifier. ...

随机推荐

  1. RocketMQ 源码学习笔记————Producer 是怎么将消息发送至 Broker 的?

    目录 RocketMQ 源码学习笔记----Producer 是怎么将消息发送至 Broker 的? 前言 项目结构 rocketmq-client 模块 DefaultMQProducerTest ...

  2. MongoDB 学习笔记之 分片和副本集混合运用

     分片和副本集混合运用: 基本架构图: 搭建详细配置: 3个shard + 3个replicat set + 3个configserver + 3个Mongos shardrsname Primary ...

  3. 使用 Chrome 对长网页(知乎、微信公众号文章)进行完整截图

    当需要对一个较长的网页进行完整截图时,可以直接使用谷歌浏览器(Chrome)自带的截图功能完成,不需要依赖第三方截图软件. 1. 打开网页 以微信公众号的页面作为示例:https://mp.weixi ...

  4. Docker5-docker私库的搭建及常用方法-harbor-registry方式

    一.简介 1.官方已经提供registry镜像为什么还需要用harbor 1)registry缺少镜像清理机制,可以push但是不能删除,耗费空间 2)registry缺乏相应的扩展机制 3)harb ...

  5. rest_framework视图

    知识预览 视图 回到顶部 视图 使用混合(mixins) 上一节的视图部分:   from rest_framework.views import APIView from rest_framewor ...

  6. Mac搭建 Eclipse +Pydev+Python 环境

    Mac配置Python开发环境(Eclipse +Pydev+Python) 1.首先下载MAC版的64位Eclipse. eclips下载地址打开链接,选择需要的版本下载 2.下载Python. M ...

  7. Spring Boot 2.2 正式发布,大幅性能提升 + Java 13 支持

    之前 Spring Boot 2.2没能按时发布,是由于 Spring Framework 5.2 的发布受阻而推迟.这次随着 Spring Framework 5.2.0 成功发布之后,Spring ...

  8. 渗透-简单制作过waf的中国菜刀

    0x01 简单分析 web渗透中很常见的情况,用菜刀连接免杀的一句话木马连不上,有waf 除了变形一句话木马为免杀一句话,我们还需要来制作过waf的菜刀进行连接. 这里用的一句话为 来看看菜刀连接一句 ...

  9. TomCat中间件漏洞复现总汇

    TomCat中间件漏洞复现 前言 在渗透测试过程中,遇到php的站相对多一点,所以对apache了解的也多一点.TomCat中间件的站了解的比较少一点,这是自己第一次搭建环境测试漏洞,所以在自己摸索的 ...

  10. libevent::日志

    LibEvent 能记录内部的错误和警告日志,如果编译进日志支持功能,也会记录调试信息.默认情况下这些消息都是输出 到 stderr,你也可以通过提供自己的日志函数的方法来覆盖这种行为. 为了覆盖 L ...