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. ...
随机推荐
- layload.js的使用
网上有人反映说lazyload只是效果好看并没有实现真正的懒加载,在后台仍然是把页面上的所有图片下了一遍,只不过是先把图片隐藏并在窗口向下滚动时再逐一显示出来罢了.lazyloag3经测试这个问题已经 ...
- Vue.js实战学习笔记(中)
1.递归组件给组件设置name属性,组件就可以在它的模板内调用自己,但必须给一个条件来限制递归数量.<div id="app"> <child-component ...
- IBM MQ8.0常用操作
一.创建队列管理器 1.创建队列管理器QM1:crtmqm -q QM1 2.删除队列管理器QM1:dltmqm QM1 3.启动队列管理器QM1:strmqm QM1 4.停止队列管理器QM1:en ...
- XCTF-Misc
最近无聊在做一下杂项,随便总结一下关于杂项的知识. 一. xcaliflag 这个直接拖进stegsolve里面,大约是在Blue的第3位左右就很清楚了 二.
- bugku 各种·绕过
点开是一段PHP的代码,先来审计一波代码. 发现将uname和passwd用sha1进行了加密,那么我们只要绕过这个函数构造相等就可以了. 可以使这两个值sha1的值相等,但他们本身的值又不等.(想详 ...
- Python高阶函数及函数柯里化
1 Python高阶函数 接收函数为参数,或者把函数作为结果返回的函数为高阶函数. 1.1 自定义sort函数 要求:仿照内建函数sorted,自行实现一个sort函数.内建函数sorted函数是返回 ...
- 基于 Web 端 3D 地铁站可视化系统
前言 工业互联网,物联网,可视化等名词在我们现在信息化的大背景下已经是耳熟能详,日常生活的交通,出行,吃穿等可能都可以用信息化的方式来为我们表达,在传统的可视化监控领域,一般都是基于 Web SCAD ...
- Redis系列(一):Redis简介
一.Redis概述 Redis是一个开源(遵循BSD协议)Key-Value数据结构的内存存储系统,用作数据库.缓存和消息代理.它支持5种数据结构:字符串string.哈希hash.列表list.集合 ...
- Spring Security 入门(一)
当你看到这篇文章时,我猜你肯定是碰到令人苦恼的问题了,我希望本文能让你有所收获. 本人几个月前还是 Spring 小白,几个月走来,看了 Spring,Spring boot,到这次的 Spring ...
- Unity 登录白屏或者黑屏
如果有一天,突然,你的Unity抽风了,登录界面白屏或者黑屏,不要急着重装.我重装了3次,第四次我再也忍不住了,终于出手了. 找到 C:\Users\hasee\AppData\Roaming\Uni ...