文档首页 > > 移植指南> 移植fcgi

移植fcgi

分享
更新时间:2020/06/24 GMT+08:00

介绍

简要介绍

FastCGI(fcgi)是一个可伸缩地、高速地在HTTP服务器和动态服务脚本语言间通信的接口(在Linux下,FastCGI接口即为socket,这个socket可以是文件socket,也可以是IP socket),主要优点是把动态语言和HTTP服务器分离开来。多数流行的HTTP服务器都支持FastCGI,包括Apache 、Nginx和Lighttpd等

语言:C++

一句话描述:一种独立于语言,高性能的CGI扩展

开源协议:custom

建议的版本

建议使用版本为“fcgi-2.4.0”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.xlarge.2 | 4vCPUs | 14GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

说明

下载地址

CentOS

7.5

在公共镜像中已提供。

Kernel

4.14.0-49

在公共镜像中已提供。

配置编译环境

安装wget工具。

yum install wget -y

获取源码

获取“fcgi-2.4.0”源码包。

cd /usr/local/src

wget https://fossies.org/linux/www/old/fcgi-2.4.0.tar.gz

编译和安装

  1. 解压软件包。

    cd /usr/local/src

    tar -zxvf fcgi-2.4.0.tar.gz

  2. 进入fcgi的下载目录。

    cd fcgi-2.4.0/

  3. 修改配置“config.sub”

    vi config.sub

    查找“x86”内容的位置,在其位置后面增加“aarch64”类型。

    “case $basic_machine in”区域的两个位置修改。

    1. 修改下述内容。
      | x86 | ppcbe | mipsbe | mipsle | shbe | shle \

      修改后为:

      | x86 | aarch64 | ppcbe | mipsbe | mipsle | shbe | shle \
    2. 修改下述内容。
      | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \

      修改后为:

      | x86-*| aarch64-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \

  4. 修改“fcgio.cpp”,将“#include <stdio.h>”增加到该文件的头部。

    vi libfcgi/fcgio.cpp

    修改前内容:
    #ifdef _WIN32
    #define DLLAPI  __declspec(dllexport)
    #endif
     
    #include <limits.h>
    #include "fcgio.h"

    修改后为:

    #ifdef _WIN32
    #define DLLAPI  __declspec(dllexport)
    #endif
    #include <stdio.h> 
    #include <limits.h>
    #include "fcgio.h"

  5. 配置fcgi生成Makefile。

    ./configure --host=aarch64 --build=aarch64

  6. 编译和安装fcgi。

    make && make install

运行和验证

  1. 查找生成的静态库。

    find / -name "libfcgi*.a"

    系统回显如下,表示正常安装。
    /usr/local/src/fcgi-2.4.0/libfcgi/.libs/libfcgi.a
    /usr/local/src/fcgi-2.4.0/libfcgi/.libs/libfcgi++.a
    /usr/local/lib/libfcgi.a
    /usr/local/lib/libfcgi++.a

  2. 运行fcgi的例子。

    cd examples/

    ./echo

    系统回显如下,表示正常运行。
    Content-type: text/html
    
    <title>FastCGI echo</title><h1>FastCGI echo</h1>
    Request number 1,  Process ID: 22914<p>
    No data from standard input.<p>
    Request environment:<br>
    <pre>
    XDG_SESSION_ID=337
    HOSTNAME=worker01
    TERM=linux
    SHELL=/bin/bash
    HISTSIZE=10000
    SSH_CLIENT=103.218.217.59 53477 22
    OLDPWD=/usr/local/src/fcgi-2.4.0
    SSH_TTY=/dev/pts/0
    QT_GRAPHICSSYSTEM_CHECKED=1
    USER=root
    ......

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问