zoukankan      html  css  js  c++  java
  • apache添加fastcgi支持

    A,安装apache服务器和fastcgi模块支持(ubuntu测试)

    sudo apt-get install apache2
    sudo apt-get install libapache2-mod-fastcgi

    apache2的配置文件目录如下:

    ciaos@ubuntu:/etc/apache2$ ll
    total 80
    drwxr-xr-x  7 root root  4096 May 28 21:33 ./
    drwxr-xr-x 93 root root  4096 May 28 21:44 ../
    -rw-r--r--  1 root root  8346 Feb  7  2012 apache2.conf
    drwxr-xr-x  2 root root  4096 May 28 21:32 conf.d/
    -rw-r--r--  1 root root  1322 Feb  7  2012 envvars
    -rw-r--r--  1 root root     0 May 28 21:32 httpd.conf
    -rw-r--r--  1 root root 31063 Feb  7  2012 magic
    drwxr-xr-x  2 root root  4096 May 28 21:36 mods-available/
    drwxr-xr-x  2 root root  4096 May 28 21:36 mods-enabled/
    -rw-r--r--  1 root root   750 Feb  7  2012 ports.conf
    drwxr-xr-x  2 root root  4096 May 28 21:58 sites-available/
    drwxr-xr-x  2 root root  4096 May 28 21:58 sites-enabled/

    配置fastcgi目录,只需要修改sites-enabled/000-default文件添加fastcgi的目录结构

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
    
    ScriptAlias /fcgi-bin/ /var/lib/apache2/fastcgi/
    <Directory "/var/lib/apache2/fastcgi">
        AllowOverride None
        Options FollowSymLinks
        Order allow,deny
        Allow from all
        SetHandler fastcgi-script
    </Directory>

    重启apache服务器如下:

    sudo apachectl -k restart

    B,接下来写fastcgi程序测试(用C来测试)

    1,安装fastcgi库
    make的时候如果出现“error: 'EOF' was not declared in this scope”错误,则在出错文件加上#include <stdio.h>

    2,编辑个简单的fastcgi程序

    #include <fcgi_stdio.h>
    
    int main()
    {
            int count = 0;
            while(FCGI_Accept() >= 0) {
                    printf("Content-type: text/html
    ");
                    printf("
    ");
                    printf("Hello world!<br>
    ");
                    printf("Request number %d.", count++);
            }
            return 0;
    }

    3,编译并放到apache的cgi和fcgi目录下测试

    gcc sim.c -lfcgi -o test.cgi
    cp test.cgi /usr/lib/cgi-bin/
    访问 http://192.168.1.108/cgi-bin/test.cgi , 每次打印Request number都是0
    
    gcc sim.c -lfcgi -o test.fcgi
    cp test.fcgi /var/lib/apache2/fastcgi/
    访问 http://192.168.1.108/cgi-bin/test.fcgi , 每次打印Request number都会递增

    :如果ldd找不到依赖库,三种方法如下
    1,export LD_LIBRARY_PATH=/usr/local/lib/
    2,直接把so文件拷贝到/lib/目录下,这个目录一般都是
    3,/etc/ld.so.conf添加响应目录, /sbin/ldconfig –v更新

  • 相关阅读:
    [LOJ#6068]. 「2017 山东一轮集训 Day4」棋盘[费用流]
    [BZOJ4842]Delight for a Cat[费用流]
    [HNOI2018]转盘[结论+线段树]
    [LOJ#6066]. 「2017 山东一轮集训 Day3」第二题[二分+括号序列+hash]
    [CF963E]Circles of Waiting[高斯消元网格图优化+期望]
    [CF966F]May Holidays[分块+虚树]
    【JZOJ5088】【GDOI2017第四轮模拟day2】最小边权和 排序+动态规划
    【JZOJ5086】【GDOI2017第四轮模拟day1】数列 折半搜索
    GDOI2017第四轮day1总结
    【51nod1563】坐标轴上的最大团 贪心
  • 原文地址:https://www.cnblogs.com/ciaos/p/3757999.html
Copyright © 2011-2022 走看看