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

               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. MapReduce与Yarn 的详细工作流程分析

    MapReduce详细工作流程之Map阶段 如上图所示 首先有一个200M的待处理文件 切片:在客户端提交之前,根据参数配置,进行任务规划,将文件按128M每块进行切片 提交:提交可以提交到本地工作环 ...

  2. MongoDB 学习笔记之 分析器和explain

    MongoDB分析器: 检测MongoDB分析器是否打开: db.getProfilingLevel() 0表示没有打开 1表示打开了,并且如果查询的执行时间超过了第二个参数毫秒(ms)为单位的最大查 ...

  3. 智慧金融时代,大数据和AI如何为业务赋能

    前言:宜信技术人物专访是宜信技术学院推出的系列性专题,我们邀请软件研发行业的优秀技术人,分享自己在软件研发领域的实践经验和前瞻性观点. 第一期专访我们邀请到宜信科技中心AI中台负责人王东老师,从大数据 ...

  4. Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker

    今天来聊聊 Spring Boot 整合 Freemarker. Freemarker 简介 这是一个相当老牌的开源的免费的模版引擎.通过 Freemarker 模版,我们可以将数据渲染成 HTML ...

  5. 基于.Net core3.0 开发的斗图小程序后端+斗图小程序

    为啥要写这么一个小程序? 作为互联网的原住民. 90后程序员的我,从高中开始发QQ小表情. 到之后的熊猫头,蘑菇头. 可以说表情包陪伴我从学校到社会,从青少年到中年.. 而且因为斗图厉害,还找到一个女 ...

  6. 简单cookie入侵

    在当前网站,按下F12键进入开发者模式,在console控制台输入:document.cookie获取cookie值如: 复制你得到cookie值,你或通过每种方式获取Cookie,例如:当别人点击你 ...

  7. 【TencentOS tiny】深度源码分析(8)——软件定时器

    软件定时器的基本概念 TencentOS tiny 的软件定时器是由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受硬件定时器资源限制的定时器服务,本质上软件定时器的使用相当 ...

  8. css父元素透明度(opacity)对子元素的影响

    首先子元素会继承父元素的透明度: 设置父元素opacity:0.5,子元素不设置opacity,子元素会受到父元素opacity的影响,也会有0.5的透明度. 其次子元素的透明度是基于父元素的透明度计 ...

  9. 【THE LAST TIME】this:call、apply、bind

    前言 The last time, I have learned [THE LAST TIME]一直是我想写的一个系列,旨在厚积薄发,重温前端. 也是给自己的查缺补漏和技术分享. 欢迎大家多多评论指点 ...

  10. Flask的请求扩展

    from flask import Flask,request app = Flask(__name__) 一.请求前 before_request 用法 @app.before_request de ...