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. ...
随机推荐
- 把功能强大的Spring EL表达式应用在.net平台
Spring EL 表达式是什么? Spring3中引入了Spring表达式语言—SpringEL,SpEL是一种强大,简洁的装配Bean的方式,他可以通过运行期间执行的表达式将值装配到我们的属性或构 ...
- Kafka 学习笔记之 Consumer API
Kafka提供了两种Consumer API High Level Consumer API Low Level Consumer API(Kafka诡异的称之为Simple Consumer API ...
- PHP 通过 ReflectionMethod 反射类方法获取注释返回 false 的问题解决
php 通过反射 ReflectionMethod 类来获取类方法的相关信息,其中就包含方法的注释内容. 问题描述 在公司测试环境运行以下代码,如果是 cli 命令行模式运行,正常输出代码注释.如果是 ...
- mfc CString 转 char *
做界面时遇到需要从界面编辑框接受输入字符(用户名,密码之类),然后转为char *类型交给程序处理,记录一下找到的方法,主要参考https://blog.csdn.net/neverup_/artic ...
- python requests-toolbelt 生成上传multipart/form-data格式数据
需求背景 想使用requests做一个自动上传的功能,发现这里问题挺多的,就记录一下. 如上图上传功能,一般分为input标签,非input标签.我这里也不管什么标签,直接抓包看数据流. Conten ...
- 了解ajax基本爬取方式
'''爬去豆瓣电影数据了解ajax的基本爬去方式 ''' from urllib import requestimport jsonimport ssl url = "https://mov ...
- C#学习--Oracle数据库基本操作(连接、增、删、改、查)封装
写在前面: SQLserver的C#封装:https://www.cnblogs.com/mexihq/p/11636785.html 类似于上篇有关SQLserver的C#封装,小编对Oracle数 ...
- web安全之点击劫持
点击劫持(ClickJacking)是一种视觉上的欺骗手段.大概有两种方式, 一是攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下点击透明 ...
- powershell下ssh客户端套件实现
有时会需要和Linux机器进行交互.所以这时就需要在Powershell中使用SSH. 0x01 查找Powershell中的SSH功能模块 如图,显示没有find-module的命令,需要安装Pac ...
- Linux常用高级命令
目录 linux命令是对Linux系统进行管理的命令.对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的D ...