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程序了。

  • 相关阅读:
    jq 获取下一个兄弟原素 下拉箭头旋转
    weui复选框无法传值
    小乌龟 coding 克隆、提交一直提示无权限
    mysql 时间操作
    Mysql表结构导出excel(含数据类型、字段备注注释)
    sql server数据库文件的迁移(mdf&ldf文件)
    thinkphp 5 _initialize 使用问题
    thinkphp5 or
    找实习与校招总结——经验与收获2021
    千兆网数据CRC检验和过滤
  • 原文地址:https://www.cnblogs.com/alexyang8/p/3542837.html
Copyright © 2011-2022 走看看