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(端口号已改),这样就能看到刚刚写的页面了。。。
Ubuntu 10.04——boa服务器的搭建的更多相关文章
- [转]ubuntu 10.04下的配置tftp服务器
[转]ubuntu 10.04下的配置tftp服务器 http://www.cnblogs.com/geneil/archive/2011/11/24/2261653.html 第1步:安装tftp所 ...
- Ubuntu 10.04下架设流媒体服务器
Ubuntu 10.04下架设流媒体服务器 个人建议:使用DarwinStreamingSrvr5.5.5,因为DarwinStreamingSrvr6.0.3安装过程中有很多问题需要解决! 目前主流 ...
- 用zd1211+Ubuntu 10.04实现的AP
[日期:2010-06-24] zd1211 在Ubuntu 10.04 LTS上的master mode 的问题解决之后,理论上就可以把zd1211 USB网卡用来做一个AP了,实际上还有几个问 ...
- 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 ...
- ubuntu 10.04 安装qt 5.0.2
转自ubuntu 10.04 安装qt 5.0.2 从qt project网站下载下来最新的qt5.0.2套件,发现是个.run文件,添加x属性,然后直接sudo ./****.run, 提示 /l ...
- 【转】Ubuntu 10.04 LTS 的窗口控制按钮从左上角调整到右上角
原文网址:http://www.linuxidc.com/Linux/2010-05/26111.htm 升级到Ubuntu 10.04后最大的问题,是最小最大和关闭按钮,放到了左边.这叫Ubuntu ...
- 解决:“Ubuntu 10.04 LTS _Lucid Lynx_ - Release i38...
编译android源码,找不到g++.通过apt-get下载时候,总是提示“Ubuntu 10.04 LTS _Lucid Lynx_ - Release i386 (20100429)” 的盘片插入 ...
- 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 ...
- Ubuntu 10.04下如何查看分区的UUID
Ubuntu 10.04通过UUID来区分各个磁盘分区,在/etc/fstab配置文件中就是通过UUID来挂载分区的.UUID,英文全称为:Universally Unique Identifier. ...
随机推荐
- Scala Try Catch Finally
Scala Try Catch Finally: 在Java中返回值优先级顺序:finally最高, try,catch 选其一,try中抛异常,返回catch,不抛异常,返回try,. public ...
- Scala 学习笔记之集合(8) Try和Future
import util._ import concurrent.ExecutionContext.Implicits.global import concurrent.Future import co ...
- Eclipse的Debug各种视图介绍(二)
本文链接:https://blog.csdn.net/u011781521/article/details/55000066 http://blog.csdn.net/u010075335/ar ...
- JVM(三)初始化
字节码指令和符号引用.直接引用 1.主动引用和被动引用 主动引用:虚拟机规定只有满足四个情况的的情况下,才会进行主动引用. 被动引用:除过四种情况的引用是被动引用. 只有主动引用才会初始 ...
- c语言中double类型数据的输入和输出
double a;scanf("%f",&a); //应用scanf("%lf",&a);执行上面语句时,发现double类型的输入不能使用 ...
- Unreal Engine 4 系列教程 Part 4:UI教程
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- HMLT clear 属性
原文 : http://www.zhangxinxu.com/wordpress/2014/06/understand-css-clear-left-right-and-use/ clear 的四个值 ...
- MySQL 插入记录时自动更新时间戳
将字段设置成timestamp类型,同时默认值设置成 CURRENT_TIMESTAMP.
- Oier们的幸运数字
题目描述 JerryC对数字痴迷到了一种非正常的境界.每天JerryC都有喜欢的一些数字.第 iii 天JerryC就喜欢Ai−BiA_i-B_iAi−Bi中的数字.但是他觉得这样并不是很有趣,于 ...
- 高通电源管理函数的power_supply的调用关系
以msm8909为例,高通的主要文件有几个: qpnp-linear-charger.c(线性充电器) qpnp-vm-bms.c(BMS管理) power_supply_core.c(power_s ...