1 基本介绍
boa出现的年代还算比较久远,但是其cgi毕竟是始祖级别,研究一下还是有必要的。
1.1 源码
boa官方网站为:链接
1.2 源码解压
我们获取的源码为:boa-0.94.13.tar包:
$ tar -xf boa-0.94.13.tar
解压出文件后,我们在用压缩包命令,将文件压缩成.gz格式文件,方便在windows上使用source insight软件打开。
$ tar -czf boa-0.94.13.tar.gz *
2 环境搭建
首先需要安装上两个工具:
$ sudo apt-get install bison
$ sudo apt-get install flex
现在假设在boa的根目录位置,我的位置如下:
wityuan@ubuntu:~/Downloads/boa/boa-0.94.13$
后面的操作我简单的使用$代表在源码的根目录下操作的。
首先,需要修改文件内容:
修改文件src/compat.h:
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
改为:
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
然后操作:
$ cd src
$ ./configure --prefix=/home/wityuan/Downloads/boa/boa-0.94.13/tmp
$ make
$ sudo mkdir /etc/boa
$ sudo cp ../boa.conf /etc/boa
接着我们需要修改boa.conf文件的内容:
$ cd /etc/boa/
更改:
#Group nogroup
Group 0
#ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
#AccessLog /var/log/boa/access_log
其中,#表示注释,在文件内部,我们找到#后面的内容,然后加上#下面的内容即可。
我们还需要修改源码src/log.c中的内容,如下图所示:
修改log.c文件中的内容
现在可以运行程序了。
由于在boa.conf中我们的端口为80,所以在运行的时候要注意加上sudo。
$ cd src/
$ sudo ./boa
[13/Aug/2017:15:34:09 +0000] boa: server version Boa/0.94.13
[13/Aug/2017:15:34:09 +0000] boa: server built Aug 13 2017 at 08:32:36.
[13/Aug/2017:15:34:09 +0000] boa: starting server pid=17974, port 80
我们在/var/www/下写一个index.html的文件:
$ cd /var/www
文件内容为:
<html>
<head>
<meta charset="utf-8"/>
<title>Upload</title>
</head>
<body>
<h2>wit_yuan say hello world</h2>
</body>
</html>
我的本机ip为192.168.1.16,所以在浏览器上,可以输入:
http://192.168.1.16/index.html
我们在浏览器上可以看到:
浏览器显示结果
我们可以执行cgi程序,命名c文件cgitest,程序如下:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
printf("Content-type:text/html\n\n");
printf("<html>\n");
printf("<head><title>CGI Output</title></head>\n");
printf("<body>\n");
printf("<h1>wit_yuan say hello world!</h1>\n");
printf("<body>\n");
printf("</html>\n");
exit(0);
}
然后:
$ gcc cgitest.c -o cgitest
$ sudo cp cgitest /var/www/cgi-bin/
在浏览器中输入:
http://192.168.1.16/cgi-bin/cgitest
执行结果如下图所示:
CGI程序执行测试
网友评论