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

               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. scalikejdbc 学习笔记(4)

    Batch 操作 import scalikejdbc._ import scalikejdbc.config._ object BatchOperation { def main(args: Arr ...

  2. Windows和Mac系统下安装Docker

    在windows和mac系统中使用Docker Desktop安装Docker对系统的要求是很高的. 对于 Windows 系统来说,安装 Docker for Windows 需要符合以下条件: 必 ...

  3. 什么是ECMAScript、什么又是ECMA?

    转载:针对于ECMA5Script .ECMAScript6.TypeScript的认识 什么是ECMAScript.什么又是ECMA? Ecma国际(Ecma International)是一家国际 ...

  4. php获取文件的文件名(误区)

    文件路径:$path = '/home/files/1234.jpg'; php获取文件名,大家应该是轻车熟路了,写个小函数,分分钟 <?php //获取文件名 function get_fil ...

  5. Cocos Creator实现左右跳游戏,提供完整游戏代码工程

    ​1. 玩法说明 游戏开始后,点击屏幕左右两侧,机器人朝左上方或右上方跳一步,如果下一步有石块,成功得1分,否则游戏结束. 2. 模块介绍 游戏场景分为2个:主页场景(home).游戏场景(game) ...

  6. 关于人工智能和python

    人工智能的话题在近几年可谓是相当火热,前几天看快本时其中有一个环节就是关于人工智能的,智能家电.智能机器人.智能工具等等,在我的印象里,提到人工智能就会出现 Python,然后我便在网上查找了相关信息 ...

  7. Cocos2d-x入门之旅[2]精灵

    精灵就是cocos是屏幕上移动的对象,能被我们控制,比如我们HelloWorld场景的这个图片就是精灵(Sprite) 怎么才算精灵?你能控制它的,就是一个精灵,否则就只是一个节点(Node) 准确的 ...

  8. 攻防世界(XCTF)逆向部分write up(一)

    晚上做几个简单的ctf逆向睡的更好 logmein elf文件 ida看看main函数伪代码 void __fastcall __noreturn main(__int64 a1, char **a2 ...

  9. macbook使用美化工具在屏幕展示出常查信息

    磕叨 凭本人自己的经验,写代码过程中要经常查看内存使用网络流量下等,所以经常用到命令去查,而且mac上的命令跟linux上又有些不一样,经常打错. 多年前还没用mac前我用的是ubnutu,那时还是1 ...

  10. Swoole 的微信扫码登录

    微信应用的便捷,扫码登录方式越来越被现在的应用所使用.它因为不用去记住密码,只要有微信号即可方便快捷登录.微信的开放平台原生就有支持扫码登录的功能,不过大部分人还是在用公众平台,所以扫码登录只能自行实 ...