zoukankan      html  css  js  c++  java
  • Apache2 FastCGI C Demo

    安装依赖

    sudo apt-get install libapache2-mod-fastcgi
    a2enmod fastcgi
    sudo apt-get install libfcgi-dev libfcgi0ldbl
    
     

    编写FCGI代码

    代码fcgi-hello.c

    #include "fcgi_stdio.h" /* fcgi library; put it first*/
    #include <stdlib.h>
    
    int count;
    
    void initialize(void)
    {
      count=0;
    }
    
    void main(void)
    {
    /* Initialization. */  
      initialize();
    
    /* Response loop. */
      while (FCGI_Accept() >= 0)   {
        char *host = getenv("SERVER_HOSTNAME");
        printf("Content-type: text/html
    "
               "
    "
               "<title>FastCGI Hello! (C, fcgi_stdio library)</title>"
               "<h1>FastCGI Hello! (C, fcgi_stdio library)</h1>"
               "Request number %d running on host <i>%s</i>
    ",
                ++count, (host == NULL)?"unknow":host);
      }
    }
    

    编译

    gcc fcgi-hello.c -o fcgi-hello.fcgi -lfcgi
    
     

    配置Apache

    编辑/etc/apache2/mods-available/fastcig.conf, 在AddHandler处添加.fcgi

    <IfModule mod_fastcgi.c>
      AddHandler fastcgi-script .fcgi
      FastCgiIpcDir /var/lib/apache2/fastcgi
    </IfModule>
    

    编辑/etc/apache2/sites-available/fcgi-demo.conf

    <VirtualHost *:8081>
        ServerName localhost
        ServerAdmin you@local.com
        DocumentRoot /var/www
        ErrorLog /var/log/apache2/error.log
        CustomLog /var/log/apache2/access.log combined
        ServerSignature Off
    
        <IfModule mod_fastcgi.c>
            <Directory /var/www>
                Options +ExecCGI
                AllowOverride All
                SetHandler fastcgi-script
                Order allow,deny
                Allow from all
                AuthBasicAuthoritative Off
            </Directory>
        </IfModule>
    </VirtualHost>
    

    编辑/etc/apache2/ports.conf,添加8081端口的监听

    Listen 80
    Listen 8081
    

    启用fcgi-demo站点

    a2ensite fcgi-demo.conf
    

    重载apache

    sudo service apache2 reload
    

    确保防火墙的8081端口是打开的,然后就可以通过浏览器或curl访问这个fastcgi程序了。

  • 相关阅读:
    《花好月圆夜》
    关于Url重写
    三大WEB服务器对比分析(apache ,lighttpd,nginx)
    APC 和 Memcache 有什么区别,哪个更好效率更高?
    URL优化不仅仅是静态化重写URL
    php中的静态变量和动态变量的区别框架加载变量时运用
    msicuu.exe (msizap.exe),程序的作用
    显示器接口针脚定义(Dsub15)
    图文教程:DIY全屏开机LOGO详解
    ASP.NET中的媒体播放
  • 原文地址:https://www.cnblogs.com/alexyang8/p/3542837.html
Copyright © 2011-2022 走看看