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. ...
随机推荐
- java第1天:简介,入门程序,变量,常量
1 java语言简介 美国的SUN公司开发的静态面向对象的编程语言,后来被甲骨文公司收购,现在也是全球范围内最受欢迎的编程语言. *** 2 计算机进制的相互转换 进制 英文代号 2进制 bin 8进 ...
- python学习(数据类型)
基本数据类型 (1)numbers 数字 %d 整型 int 长整型 Long 布尔型 boor True False %f 浮点型 float 3.1415926 4.2E-10 复数 comple ...
- 洛谷P3258 [JLOI2014]松鼠的新家【LCA+树上差分】
简要题意 树上n个节点,给定路径,求每个点经过次数 题意分析 对于每两个点,有两种情况,第一种,他们的lca为本身,第二种,他们有公共祖先,又要求他们的点经过次数,暴力是不可能的,复杂度不对,所以可以 ...
- Web安全 --Wfuzz 使用大全
前言: 做web渗透大多数时候bp来fuzz 偶尔会有觉得要求达不到的时候 wfuzz就很有用了这时候 用了很久了这点来整理一次 wfuzz 是一款Python开发的Web安全模糊测试工具. 下 ...
- 无 PowerShell.exe 执行 Empire 的几种姿势
在实战中,Empire成为域渗透.后渗透阶段一大利器,而Empire是一个Powershell RAT,所以PowerShell必须要能运行Empire中几乎所有的启动方法都依赖于使用PowerShe ...
- [BZOJ1076] 奖励关
Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物, 每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的 ...
- mysqldump导出 timestamp类型数据 时区偏差8小时
1 出现原因 1.1 查看机器时区和MySQL的时区 #查看linux的机器时区: [root@mysql-150 ~]# date -R Wed, 23 Oct 2019 14:10:04 +080 ...
- Angular/Vue多复选框勾选问题
此页面效果以Angular实现,Vue也可按照其大致流程实现,其核心本质没有改变. 功能效果为:页面初始化效果为要有所有角色的复选框,要求初始化默认勾选的角色要显示勾选,之后,能按照最终勾选的状态提交 ...
- java控制执行流程
控制执行流程 欢迎转载,转载烦请注明出处,谢谢. https://www.cnblogs.com/sx-wuyj/p/11177257.html java当中涉及到的关键字包括if-else.whil ...
- VoodooPad Mac笔记本
VoodooPad Mac笔记本 VoodooPad是记录您的笔记和想法的地方.想法,图片,列表,密码和妈妈的苹果派食谱.包括您需要跟踪和组织的所有内容,VoodooPad会与您一起成长而不会妨碍您. ...