Ubuntu下boa服务器的配置与搭建

我用的是Ubuntu 12.04,但方法不局限于此版系统,应该是通用的。

网上关于ubuntu下配置boa的资料很多,我结合网上一些文档,进行了整理和总结。

具体操作步骤:

1.下载Boa源码

  下载地址: http://www.boa.org/

  最新发行版本: 0.94.13

  下载 boa-0.94.13.tar.gz

  解压方法:

    cd Desktop 进入boa-0.94.13.tar.gz存放目录

    tar xzf boa-0.94.13.tar.gz 解压

  注意:如果你还不清楚怎么进入命令模式,Alt+F2输入gnome-terminal即可找到,类似windows下的cmd;

     tar命令之前,你需要先切换到boa-0.94.13.tar.gz存放目录,否则会提示找不到文件。例如放在桌面,先cd Desktop.

     我的boa-0.94.13.tar.gz放在了桌面,避免一些命令无法运行,请你也放在桌面。

2.安装需要的工具bison,flex

  sudo apt-get install bison flex

  不安装或者安装不成功都会导致后面make时出现错误127

  注意:如果install报错,那你需要先更新系统(sudo apt-get update),更新根据网速可能花费几十分钟甚至小时,耐心等待。

     待更新完成后,继续sudo apt-get install bison flex

3.生成Makefile文件

  cd boa-0.94.13/src 切换当前目录

  ./configure 运行

4.准备工作

  4.1 Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。

  sudo mkdir /etc/boa 新建目录

  cd ~ 返回根目录

  cd /etc 切换当前目录

  sudo cp ~/Desktop/boa-0.94.13/boa.conf boa 复制文件boa.conf到/etc/boa目录

  4.2 修改/etc/boa/boa.conf

  sudo gedit ~/etc/boa/boa.conf 管理员身份打开boa.conf,其他身份无法修改和保存boa.conf。

  注意:修改boa.conf等文件需要管理员身份,获取管理员身份方法有多种,推荐直接sudo gedit来打开。

  (1)Group的修改

  修改 Group nogroup

  为  Group 0

  (2)user的修改

  修改 User nobody

  为  User 0

  (3)修改ScriptAlias的路径

  修改ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

  为 ScriptAlias /cgi-bin/ /var/www/cgi-bin/

  (4)去掉ServerName前面的注释符号#

  修改#ServerName www.your.org.here

  为 ServerName www.your.org.here

  否则会出现错误: "gethostbyname::No such file or directory"

  (5)注释掉AccessLog命令

  修改AccessLog /var/log/boa/access_log

  为# AccessLog /var/log/boa/access_log

  否则会出现错误提示: "Cannot open ... for logging:logfile open:Is a directory"

  4.3 修改 src/compat.h

  #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff

  修改成

  #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff

  否则会出现错误:util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: *** [util.o] 错误 1

  4.4 修改 src/log.c

  if (dup2(error_log, STDERR_FILENO) == -1) {

  DIE("unable to dup2 the error log");

  }

  修改为

  /*if (dup2(error_log, STDERR_FILENO) == -1) {

  DIE("unable to dup2 the error log");

  }*/

  否则会出现错误:log.c:73 unable to dup2 the error log:bad file descriptor

  4.5 修改src/boa.c

  if (setuid(0) != -1) {

  DIE(”icky Linux kernel bug!”);

  }

  修改为

  #if 0

  if (setuid(0) != -1) {

  DIE(”icky Linux kernel bug!”);

  }

  #endif

  否则可能会出现错误:boa.c:228 、 boa.c:226

  4.6 创建web服务器的文件根目录

  cd ~ 返回根目录

  sudo mkdir /var/www 创建目录

  sudo chmod -R 777 /var/www 修改权限

  4.7 创建log目录

  cd ~ 返回根目录

  sudo mkdir /var/log/boa

  sudo mkdir /var/log/boa/error_log

  sudo mkdir /var/log/boa/access_log

  sudo chmod -R 777 /var/log/boa 修改权限

  sudo chmod -R 777 /var/log/boa/error_log 修改权限

  sudo chmod -R 777 /var/log/boa/access_log 修改权限

  4.8 创建CGI目录

  sudo mkdir /var/www/cgi-bin 创建cgi文件存放目录

  sudo chmod -R 777 /var/www/cgi-bin 修改权限

5.在src目录下编译

  cd ~ 返回根目录

  cd Destop/boa-0.94.13/src 切换目录

  make 编译

6.在src目录下运行boa

  sudo ./boa 必须在src目录下运行

7.查看进程

  ps -e 看boa是否已经运行

8.网页测试

  浏览器访问:http://127.0.0.1

  注意:默认端口是80,如果你的80端口已经被占用,可以修改/etc/boa/boa.conf,变更Port 80。这里对应修改:http://127.0.0.1:端口号

9.CGI程序测试

  将Destop/boa-0.94.13/examples目录下的cgi-test.cgi拷贝到var/www/cgi-bin

  浏览器访问:http://127.0.0.1/cgi-bin/cgi-test.cgi

(现在你可以删掉boa-0.94.13.tar.gz,然后把解压后的目录boa-0.94.13放到你自己想放的地方,但是每次运行boa自己要容易找到位置。)

posted @ 2012-10-17 17:18  Jason Xiang  阅读(4238)  评论(0编辑  收藏  举报