Ubuntu 10.04——boa服务器的搭建

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

               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(端口号已改),这样就能看到刚刚写的页面了。。。

上一篇:maven新建的项目,不自动引入依赖包


下一篇:python 正则表达式之零宽断言