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.mzph.cn/news/812651.shtml

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

相关文章

Nginx转发请求错误

说明:记录一次使用Nginx转发请求的错误; 场景 公司内部有两台服务器都跑了后端项目,在使用Nginx做请求分发时,我发现其中有台服务器一直没有处理请求(没打印相关的日志信息),于是我修改了下Ng…

僵尸进程和孤儿进程

目录 引言僵尸进程僵尸进程的状态僵尸进程周边知识 孤儿进程孤儿进程的状态 进程中的其他状态①.R---表示进程运行状态。②.S---表示进程的休眠状态。(进程什么都没做)③T 和 t 进程的运行、阻塞和挂起运行阻塞挂起状态: 引言 今天我们来将僵尸进程和孤儿进程以及其…

国家留学基金委(CSC)2024-2025年度中加学者交换项目开始申报

4月3日,国家留学基金委(CSC)发布了2024-2025年度中加学者交换项目遴选通知。根据通知精神,选派规模:100人月,留学及资助期限:4-12个月,网上报名截止日期至2024年6月30日。以下知识人…

Docker 学习笔记(六):挑战容器数据卷技术一文通,实战多个 MySQL 数据同步,能懂会用,初学必备

一、前言 记录时间 [2024-4-11] 系列文章简摘: Docker学习笔记(二):在Linux中部署Docker(Centos7下安装docker、环境配置,以及镜像简单使用) Docker 学习笔记(三)&#x…

基于ssm同学录网站论文

摘要 本文介绍了同学录网站的开发全过程。通过分析企业对于同学录网站的需求,创建了一个计算机管理同学录网站的方案。文章介绍了同学录网站的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。 本同学录网站…

造船业的重要工具之一(火工平台)——河北北重厂家

火工平台是造船业的重要工具之一,它是用于火焰切割和焊接的设备。在造船过程中,需要对金属材料进行切割和焊接,以构建船体结构。火工平台可以提供高温火焰,使得金属材料可以被切割或焊接。 火工平台通常由两个主要部分组成&#…

vue2响应式原理----发布订阅模式

很多人感觉vue2的响应式其实用到了观察者发布订阅。我们先来看一下简单的发布订阅的代码: // 调度中心 class Dep {static subscribes {}// 订阅所有需求static subscribe (key, demand) {// 对需求分类收集if (!Dep.subscribes[key]) Dep.subscribes[key] []Dep…

Windows安装MongoDB结合内网穿透轻松实现公网访问本地数据库

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

基于SpringBoot的“银行OA系统的设计与实现”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“银行OA系统的设计与实现”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 用户登录界面 管理员主界面 员工基本档…

武汉星起航顺应政策东风,打造跨境电商孵化新标杆

在国家政策的鼎力支持下,跨境电商行业迎来了蓬勃发展的黄金时期。武汉星起航电子商务有限公司作为行业的佼佼者,积极响应国家政策号召,凭借专业的运营团队和丰富的经验,成功打造了一站式的跨境电商亚马逊孵化平台,为合…

element-ui form表单自定义label的样式、内容

element-ui form表单自定义label的样式、内容 效果截图 代码 <el-form size"small" :inline"true" label-width"120px"><el-form-item prop"name"><div slot"label"><i style"color: red;"…

JavaWeb--JavaScript-事件绑定/BOM/DOM编程

目录 1. 事件绑定 1.1. 什么是事件 1.2. 常见事件 1.3. 事件的绑定 1.3.1. 属性绑定 1.3.2. DOM编程绑定 1.4. 事件的触发 1.4.1. 行为触发 1.4.2. DOM编程触发 2. BOM 编程 2.1. 什么是 BOM 2.2. window对象的常见属性(了解) 2.3. window对象的常见方法(了解) 2…

【中文医疗词嵌入模型】SMedBERT:结构化知识图谱 + 混合注意力机制 + 提及-邻居上下文建模

【中文医疗词嵌入模型】SMedBERT&#xff1a;结构化知识图谱 混合注意力机制 提及-邻居上下文建模 提出背景SMedBERT 具体到点的设计逻辑SMedBERT的背景SMedBERT的工作原理 SMedBERT 具体实现细节3.1 符号和模型3.2 Top-K Entity Sorting3.3 提及-邻居混合注意力3.4 提及-邻居…

Android - 安卓概述

什么是安卓? Android 是一种基于 Linux 的开源操作系统&#xff0c;适用于智能手机和平板电脑等移动设备。 Android 是由 Google 和其他公司领导的 Open Handset Alliance 开发的。 Android 为移动设备的应用程序开发提供了统一的方法&#xff0c;这意味着开发人员只需为 And…

【JavaWeb】Day42.MySQL概述——多表查询

介绍 多表查询&#xff1a;查询时从多张表中获取所需数据 单表查询的SQL语句&#xff1a;select 字段列表 from 表名; 如果要执行多表查询&#xff0c;只需要使用逗号分隔多张表即可&#xff0c;如&#xff1a; select 字段列表 from 表1, 表2; 例如&#xff1a;查询…

C++11的更新介绍(新的类功能、可变参数模板)

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;c大冒险 总有光环在陨落&#xff0c;总有新星在闪烁 新的类功能 默认成员函数&…

《师兄啊师兄》:玄机科技打造国漫新高峰,IP运营再显神力

在这个国漫蓬勃发展的时代&#xff0c;玄机科技再次以其超凡的制作水准和出色的IP运营能力&#xff0c;为我们带来了一部国漫新经典——《师兄啊师兄》。这部作品不仅在画面、剧情上达到了行业新高度&#xff0c;更在IP运营上展现出了其强大的实力与前瞻性。 《师兄啊师兄》的画…

构建智能连接的未来:物联网平台系统架构解析

随着科技的不断进步和互联网的普及&#xff0c;物联网&#xff08;Internet of Things, IoT&#xff09;已成为连接世界的新方式。物联网平台作为实现物联网应用的核心基础设施&#xff0c;其系统架构的设计和实施至关重要。本文将深入探讨物联网平台系统架构的关键要素和最佳实…

【七 (2)FineBI-平台新增用户留存分析】

目录 文章导航一、字段解释1、用户平台登录信息表格2、用户平台激活信息表格 二、需求三、操作步骤1、建立用户平台登录信息表格和用户平台激活信息表格的关联关系2、将用户平台激活信息表格的激活日期添加到用户平台登录信息表格3、新增公式列&#xff0c;计算激活时间和登录时…

P4119 [Ynoi2018] 未来日记

它来了&#xff01; 分析一下第一个操作&#xff0c;不是写过嘛&#xff0c;并查集 分析一下第二个操作&#xff0c;二分套二分答案 拿下了这题 仔细分析&#xff0c;貌似时间复杂度是错的 我们考虑块套块 时间复杂度 对1e5的值域进行分块 求k值我们可以先找是第几个块&…