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自己要容易找到位置。)