CentOS7 boa服务器的搭建和配置

环境是CentOS7,但方法不局限于此版系统,应该是通用的。

具体步骤如下:

1. 下载boa源码

下载地址: Boa Webserver

下载后,进入压缩包所在目录,进行解压:

tar xzf boa-0.94.13.tar.gz

2. 安装需要的工具bison,flex

sudo yum install bison flex
#ubuntu: sudo apt-get install bison flex#注意:不安装或者安装不成功都会导致后面make时出现错误127

3. 成Makefile文件

cd boa-0.94.13/src
./configure

 4. 配置boa,准备工作

1)Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf

将解压出来的boa.conf复制到/etc/boa目录

sudo mkdir /etc/boa
sudo cp /home/web/boa-0.94.13/boa.conf /etc/boa/

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"

3)修改 boa-0.94-13/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 修改 boa-0.94-13/src/log.c重要的一步,否则后续会有很多报错

        将以下条件注释掉:

        #if 0

        if (dup2(error_log, STDERR_FILENO) == -1) {

                DIE("unable to dup2 the error log");

        }

        #endif

        否则会出现错误:log.c:73 unable to dup2 the error log:bad file descriptor

5 修改boa-0.94-13/src/boa.c重要的一步,否则后续会有很多报错

        #if 0

        if (setuid(0) != -1) {

                DIE(”icky Linux kernel bug!”);

        }

        #endif

  否则可能会出现错误:boa.c:228 、 boa.c:226

6)创建web服务器的文件根目录

sudo mkdir /var/www
sudo chmod -R 777 /var/www
#注意:boa.conf中指定的html文件存在位置

7)创建log目录

sudo mkdir /var/log/boa
sudo touch /var/log/boa/error_log
sudo touch /var/log/boa/access_log
sudo chmod -R 777 /var/log/boa
sudo chmod 777 /var/log/boa/error_log
sudo chmod 777 /var/log/boa/access_log

 8)创建CGI目录cgi文件存放目录

sudo mkdir /var/www/cgi-bin
sudo chmod -R 777 /var/www/cgi-bin

5. 编译

cd /home.boa-0.94.13/src/
make

6. 运行boa

执行boa-0.94.13/src/boa可执行文件

 

运行出现以下问题:

解决方法: 运行BOA报错 Could not open mime.types file, "/etc/mime.types", for reading-CSDN博客

 7. 测试

1)CGI程序测试

将 boa-0.94.13/examples目录下的 cgi-test.cgi 拷贝到 var/www/cgi-bin/

浏览器访问:http://127.0.0.1/cgi-bin/cgi-test.cgi

2)html网页测试

将html文件拷贝至/var/www/下

浏览器访问:http://127.0.0.1/html文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/307263.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

了解虚拟路由器冗余协议(VRRP)

虚拟路由器冗余协议(VRRP)是一种被广泛使用的网络协议,旨在增强网络的可靠性和可用性。对于网络管理员和工程师来说,了解VRRP是确保网络能够实现无缝故障转移和保持不间断连接的关键。本文将深入探讨VRRP的基础知识,包…

研究了一款Vue2开发的Markdown编辑器

最近突然喜欢开始写作了,写笔记,写日记,写总结,各种写。所以,想要打造一个自己喜欢的编辑器,于是开始研究。 首先来看看我从Github丄扒拉到的这个开源的代码: 运行起来以后效果是这样的&…

Vue项目打包配置生产环境去掉console.log语句的方法

一、Vue2项目 使用webpack内置的 terser 工具,在vue.config.js文件加上相应的配置即可。 二、Vue3项目 同样是使用 terser 工具,不过vite没有内置terser,需要手动安装依赖 安装完后在vite.config.js文件加上相应的配置即可。 2024-4-9

Xlinx相关原语讲解导航页面

原语就是对FPGA底层器件的直接调用,与IP功能是类似的,将原语的参数变成IP配置时的GUI界面参数,可能会更加直观。IP的缺陷在于繁杂,比如SelectIO IP内部包含IDDR、ODDR等等IO转换的功能,如果只想使用单沿转双沿一个功能…

多因子模型的数据处理

优质博文:IT-BLOG-CN 数据处理的基本目的是从多量的、可能是杂乱无章的、难以理解的数据中抽取并推导出有价值、有意义的数据。特别是金融数据,存在数据缺失,不完整以及极端异常值等问题,对于我们的分析和建模影响很多。 对于我…

逆境突围:网络安全寒冬下售前的效率革命与AI赋能

在网络安全行业遭遇严冬之际,众多企业纷纷勒紧裤腰带,竭力挺过这段寒风凛冽的时期。我朋友所在的网安公司亦未能幸免于这场经济寒潮的冲击,不少售前同事无奈地提前踏上了职业生涯的“毕业”之路,留下的人则如同雪中孤松&#xff0…

【配电网故障定位】基于二进制蝗虫优化算法的配电网故障定位 12节点配电系统故障定位【Matlab代码#75】

文章目录 【获取资源请见文章第5节:资源获取】1. 配电网故障定位2. 二进制蝗虫优化算法3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节:资源获取】 1. 配电网故障定位 配电系统故障定位,即在配电网络发生故障的时候&am…

视频号小店究竟有什么秘密,值得商家疯狂入驻,商家必看!

大家好,我是电商花花。 我们都知道视频号和抖音本身都是一个短视频平台,但是随着直播电商的发展,背后的流量推动逐步显露出强大的红利市场和变现机会。 视频号小店流量大和赚钱之外,还非常适合普通人创业。 这也使得越来越多的…

【JAVA基础篇教学】第十篇:Java中Map详解说明

博主打算从0-1讲解下java基础教学,今天教学第十篇:Java中Map详解说明。 在 Java 编程中,Map 接口代表了一种键值对的集合,每个键对应一个值。Map 接口提供了一系列操作方法,可以方便地对键值对进行增删改查等操作。本…

【微信小程序】canvas开发笔记

【微信小程序】canvasToTempFilePath:fail fail canvas is empty 看说明书 最好是先看一下官方文档点此前往 如果是canvas 2d 写canvas: this.canvas,,如果是旧版写canvasId: ***, 解决问题 修改对应的代码,如下所示,然后再试试运行&#x…

要不是情绪管理得当,我早就拍桌子走人了!!!——早读(逆天打工人爬取热门微信文章解读)

身体是革命的本钱! 引言Python 代码第一篇 洞见 中年以后 换个脾气 就是换条命第二篇 人民日报 来了新闻早班车要闻社会政策 结尾 年轻时的我们 如同初生的牛犊 无所畏惧 岁月却教会我们谨慎与尊重 引言 左边突出的神经开始疯狂跳动 不断提醒我 你该休息了 不能再放…

pyside6的QSpinBox自定义特性初步研究(二)

当前的需求是,蓝色背景的画面,需要一个相对应色系的QSpinBox部件。已有的部件风格是这样的,需要新的部件与之般配。 首先新建一个QDoubleSpinBox,并定义其背景色和边框: QDoubleSpinBox { color: white; border:1px…

uniapp 地图分幅网格生成 小程序基于map组件

// 获取小数部分 const fractional function(x) {x Math.abs(x);return x - Math.floor(x); } const formatInt function(x, len) {let result x;len len - result.length;while (len > 0) {result 0 result;len--;}return result; }/*** 创建标准分幅网格* param …

【科研入门】评价指标AUC原理及实践

评价指标AUC原理及实践 目录 评价指标AUC原理及实践一、二分类评估指标1.1 混淆矩阵1.2 准确率 Accuracy定义公式局限性 1.3 精确率 Precision 和 召回率 Recall定义公式 1.4 阈值定义阈值的调整 1.5 ROC与AUC引入定义公式理解AUC算法 一、二分类评估指标 1.1 混淆矩阵 对于二…

【MYSQL】MySQL整体结构之系统服务

一、系统服务层 学习了MySQL网络连接层后,接下来看看系统服务层,MySQL大多数核心功能都位于这一层,包括客户端SQL请求解析、语义分析、查询优化、缓存以及所有的内置函数(例如:日期、时间、统计、加密函数...&#xff…

【Java8新特性】二、函数式接口

这里写自定义目录标题 一、什么是函数式接口二、自定义函数式接口三、作为参数传递 Lambda 表达式四、四大内置核心函数式接口1、消费形接口2、供给形接口3、函数型接口4、断言形接口 一、什么是函数式接口 只包含一个抽象方法的接口,称为函数式接口。你可以通过 L…

2024年天津市安全员C证证模拟考试题库及天津市安全员C证理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年天津市安全员C证证模拟考试题库及天津市安全员C证理论考试试题是由安全生产模拟考试一点通提供,天津市安全员C证证模拟考试题库是根据天津市安全员C证最新版教材,天津市安全员C证大纲整理…

html+javascript,用date完成,距离某一天还有多少天

图片展示: html代码 如下: <style>* {margin: 0;padding: 0;}.time-item {width: 500px;height: 45px;margin: 0 auto;}.time-item strong {background: orange;color: #fff;line-height: 100px;font-size: 40px;font-family: Arial;padding: 0 10px;margin-right: 10px…

私有化即时通讯软件,WorkPlus提供的私有化、安全通讯解决方案

在当今信息化快速发展的时代&#xff0c;安全问题已经成为各行各业关注的焦点。特别是在金融、政府单位和芯片等关键行业&#xff0c;信息安全的重要性不言而喻。这些行业涉及到大量的敏感数据和关键信息&#xff0c;一旦发生泄露&#xff0c;可能会对国家安全、企业利益甚至个…

【环境搭建】ubuntu工作站搭建全流程(显卡4090)

安装ubuntu22.04系统 首先&#xff0c;先压缩windows分区&#xff0c;按住Win X快捷键&#xff0c;选择磁盘管理,压缩分区&#xff0c;压缩出新的分区用于安装ubuntu22.04 windows插入系统盘&#xff0c;点击重启&#xff0c;一直按F12,选择系统盘启动方式语言选择chinese–…