BOA web服务器上的CGI程序小实验

本文介绍 Boa Web 服务器的基本配置方法,包括配置文件位置、根目录设置、CGI 路径定义及错误日志管理等,并提供 HTML 和 CGI 程序示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*

一、配置文件:

*
1.boa配置文件通常在哪里?
/etc/boa/boa.conf
2.boa工作的根目录:
DocumentRoot /var/www
VHostRoot /var/www
3. cgi程序存放的路径:
CGIPath /bin:/usr/bin:/usr/local/bin:/var/www/cgi-bin
各路径之间用冒号分隔。
4.虚拟路径:
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
客户端在浏览器输入http://192.168.204.135/cgi-bin/mytest.cgi时所访问的服务器端cgi程序是: /var/www/cgi-bin/mytest.cgi
5.错误日志的存储路径:
ErrorLog /var/log/boa/error_log
如果没有以/开始,则表示从服务器的根路径开始;如果不需要错误日志,
则用#/dev/null。


二、首页(请求页):


1.实例A:

<html>
    <head>
        <title>CGI Output</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
        <h1>HELLO,WORLD.xxgui1992 </h1>
        <FORM ACTION="/cgi-bin/mytest2.cgi"> 
            请在下面填入乘数和被乘数,按下确定后可以看到结果。
            </br>
            </br>
            <INPUT NAME="m" SIZE="5">  
            </br>
            </br>
            <INPUT NAME="n" SIZE="5" >  
            </br>
            </br>
            <INPUT TYPE="SUBMIT" VALUE="确定" >  
        </FORM>  
    <body>
</html>

2.实例B:

<html>
    <head><title>CGI Output</title></head>
    <body>
        <h1>HELLO,WORLD.xxgui1992 </h1>
        <form METHOD="GET" action="/cgi-bin/mytest.cgi">
            usrname:    
            <input type="text" name="usrname" >
            </br>
            passwd:
            <input type="text"
            name="pw" >
            </br>
            </br>
            <input type="RESET" name="reset" value="clearn all" >
            </br>
            </br>
            <input type="SUBMIT"" name="submit" value="submit" >
            </br>
            </br>
            <a href="/cgi-bin/mytest1.cgi">to cgi page</a> 
        </form>
    <body>
</html>

三、CGI程序(响应页):


1.实例A:

int main(int argc, const char *argv[])
{


        char *data;  
        long m,n;  
        printf("%s%c%c\n","Content-Type:text/html;charset=utf-8",13,10);    
    //  printf("<meta http-equiv=i\"Content-Type\" content=\"text/html; charset=utf-8\">\n");  
        printf("<TITLE>乘法结果</TITLE> ");  
        printf("<H3>乘法结果</H3> ");  
        data = getenv("QUERY_STRING");  
        if(data == NULL)  
            printf("<P>错误!数据没有被输入或者数据传输有问题");  
        else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)  
            printf("<P>错误!输入数据非法。表单中输入的必须是数字。");  
        else  
            printf("<P>%ld%ld的成绩是:%ld。",m,n,m*n);  
        return 0;  

    return 0;
}

2.实例B:

int main(void)
{
    int k=0;
    char *buf = getenv("QUERY_STRING");

    if(buf !=NULL)
    {

        int size = strlen(buf);
        FILE *fp = fopen("./11111.txt","w+");
        fwrite(buf,size,1,fp);
        fclose(fp);
    }

    printf("Content-type:text/html\n\n"); //这句一定要加上  
    printf("<html><body>"); 
    printf("</br>\n");
    printf("<input type=\"RESET\" name=\"reset\" value=\" %s\" >",buf);
    printf("</br>\n");
    printf("</body></html>");  

    exit(0);
}

四、效果截图:


这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xxgui1992

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值