Windows下Apache和C++实现第一个fastcgi

更多精彩内容,请见:http://www.16boke.com


by zxy,qq群:168424095

Apache中httpd.conf的配置

(1)ScriptAlias /cgi-bin/ "D:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"
改为:ScriptAlias /cgi-bin/ "F:/App/CGI/"

(2)<Directory "D:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
改为:
<Directory "F:/App/CGI">
    #SetHandler fastcgi-script
    #SetHandler cgi-script
    #SetHandler fcgid-script
    AllowOverride None
    #Options None
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>

(3)最后面增加:
LoadModule fcgid_module modules/mod_fcgid.so

<IfModule mod_fcgid.c>
  AddHandler fcgid-script .fcgi
  SocketPath /tmp/fcgid.sock
  timeout 1000
  #Action php-fastcgi /cgi-bin/
  #AddType application/x-httpd .fcgi
</IfModule>

原来在网上见得一个对我很有帮助的FastCGI例子:
#include "fcgi_stdio.h"
#include "fcgiapp.h"
#include <stdlib.h>
#include <string.h>

int main(){
FCGX_Stream *in, *out, *err;
FCGX_ParamArray envp;
char* request_method;
char* content_length;
char* query_string;
int len;
char buffer[1024];
while(FCGX_Accept(&in, &out, &err, &envp) >= 0){
    FCGX_FPrintF(out,"Content-type: text/html\r\n\r\n");
    request_method = FCGX_GetParam("REQUEST_METHOD", envp);
    if(strcmp(request_method, "POST") == 0){
      content_length = FCGX_GetParam("CONTENT_LENGTH", envp);
      if(content_length != NULL){
        len = 0;
        len = strtol(content_length, NULL, 10);
        if(len == 0){
          FCGX_FPrintF(out, "No data from standard input.\n");
        }else{
          FCGX_GetStr(buffer, 1024, in);
          buffer[len-1] = '\0';
          FCGX_FPrintF(out, "%s\n", buffer);
        }
      }
    }else if(strcmp(request_method, "GET") == 0){
      query_string = FCGX_GetParam("QUERY_STRING", envp);
      FCGX_FPrintF(out, "%s\n", query_string);
    }
}
return 0;
}

apache配置

用到的fastcgi的include和lib

httpd-2.2.19-win32-x86-openssl-0.9.8r.zip

mod_fcgid.so


更多精彩内容,请见:http://www.16boke.com

你可能感兴趣的:(apache,C++,String,query,buffer)