boa服务器的移植

2024-10-30  本文已影响0人  锈色的栅栏

一 .下载解压

1.下载boa-0.94.13.tar.gz

链接: https://pan.baidu.com/s/1OvT_WizGS6fW1YcOU9B9rQ?pwd=dep6 提取码: dep6
http://www.boa.org/

2.将boa-0.94.13.tar.gzk拷贝到虚拟机的任意目录

3.解压上述压缩包

tar xvf boa-0.94.13.tar.gz

4.进入boa-0.94.13/

cd boa-0.94.13/

5.进入src目录

cd src

二.编译源码

boa服务器的安装目录分析:

mkdir /home/c/boa/boa -p
mkdir /home/c/boa/log
mkdir /home/c/boa/www
mkdir /home/c/boa/www/cgi-bin


1.修改寻找boa.conf的路径

   需要修改defines.h文件中的SERVER_ROOT,使其指向改动后的配置文件路径

vim defines.h

修改目录

2.执行./configure配置编译环境

./configure  

3. make编译源码

make

错误1:
yacc -d boa_grammar.y
make: yacc: Command not found
Makefile:59: recipe for target 'y.tab.c' failed
make: *** [y.tab.c] Error 127

sudo apt-get install byacc

错误2:
make: lex: Command not found
Makefile:62: recipe for target 'lex.yy.c' failed
make: *** [lex.yy.c] Error 127

sudo apt-get install flex

错误3:

util.c: In function ‘get_commonlog_time’:
util.c:100:39: error: pasting "t" and "->" does not give a valid preprocessing token
time_offset = TIMEZONE_OFFSET(t);
                                                         ^
compat.h:120:30: note: in definition of macro ‘TIMEZONE_OFFSET’
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
                                                         ^
<builtin>: recipe for target 'util.o' failed
make: *** [util.o] Error 1

解决方案:
        root@linux:src# vim compat.h +120
        #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff        //修改成这个
        //#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff        //注释掉

 vim boa.c +225
 225 #if 0 //注释掉
 226 if (setuid(0) != -1) {
 227 DIE("icky Linux kernel bug!");
 228 }
 229 #endif

4.把生成的boa 和 boa.conf(上一级目录) 文件 拷贝到boa/boa目录下

cp boa /home/c/boa/boa/
cd ..
cp boa.conf ~/boa/boa/

三.配置boa.conf

cd ~/boa/boa/

vim boa.conf

修改完成后保存退出 
cd ..
复制创建文件
sudo cp /etc/mime.types boa
touch log/error_log
touch log/access_log

四 .运行服务器boa

sudo ./boa/boa

ps -axj | grep "boa"

2102 24862 24860 24255 pts/18  24255 S    65534  0:00 ./boa
25753 25793 25792 25753 pts/4    25792 S+    1000  0:00 grep

如果有进程则说明部署成功

五.测试服务器

上一篇 下一篇

猜你喜欢

热点阅读