1.下载安装

从http://archive.apache.org/dist/httpd/下载apache_1.3.6.tar.gz

从http://www.fastcgi.com/下载mod_fastcgi-2.4.0.tar.gz和fcgi-2.4.0.tar.gz

为什么下载这两本版本?

因为fastcgi很久没有更新,最新的版本都是2003年的,所以尽量着一个fastcgi的高版本,和一个低版本的apache上,这样尽量避免有些版本的fastcgi由于版本的原因,没有在一些高版本的apache调试过,出现一些我们不能解决的问题。

后面顺序执行如下的命令:

gunzip -c apache_1.3.6.tar.gz | tar xvf -

gunzip -c mod_fastcgi-2.4.0.tar.gz  | tar xvf -

cp -rp mod_fastcgi-2.4.0 apache_1.3.6/src/modules/fastcgi

cd apache_1.3.6

./configure --prefix=/usr/local/apache --activate-module=src/modules/fastcgi/libfastcgi.a --enable-module=info --enable-shared=info

make

make install

命令解释

cp -rp mod_fastcgi-2.4.0 apache_1.3.6/src/modules/fastcgi 将fastcgi拷贝到apache源文件中,作为一个模块编译连接到apache中

./configure --prefix=/usr/local/apache --activate-module=src/modules/fastcgi/libfastcgi.a --enable-module=info --enable-shared=info  中--prefix=/usr/local/apache指定了安装目录,如果登录用户没有在目录/usr/local中创建目录的权限,在后面make install中会报错,有两个解决办法,1)用root用户在/usr/local下创建apache目录,再chmod a+wrx apache,使别的用户拥有足够的权限;2)将--prefix指定的安装目录指向一个登录用户拥有创建目录权限的路径下; --activate-module=src/modules/fastcgi/libfastcgi.a 在编译的时候添加一个fastcgi模块到apache中。

make编译

make install安装

2.启动配置

首先在环境变量中添加路径,如果在linux下,打开.bash_profile,在unix下,打开.profile

PATH=$PATH:/usr/local/apache/bin,将apache执行程序添加到搜索路径中。

启动,执行命令:

apachectl start

如果没有错误信息表名成功,打开ie,输入http://ip:8080(这里的ip地址是apache的安装主机),如果有页面显示,说明apache成功安装、启动。

我曾经在启动的时候,出现过如下两个错误:

错误1:

Syntax error on line 201 of /usr/local/apache/conf/httpd.conf:

Cannot load /usr/local/apache/libexec/mod_fastcgi.so into server: /usr/local/apache/libexec/mod_fastcgi.so: undefined symbol: fstat

/usr/local/apache/bin/apachectl start: httpd could not be started

我检查了mod_fastcgi.so 路径下的每一个目录,权限不是问题,根据“undefined symbol”断定,肯定是编译的问题,编译按常规判断,也是没有问题的,没有报错,那么肯定是有些版本下,一些符号重新编译了,后来想到fastcgi从2003年之后就没有更新了,那么应该是版本融合、兼容的问题。后来下载了一个相对较高的fastcgi版本,何一个相对比较低的apache版本,解决了这个问题。

错误2:

httpd: cannot determine local host name.

Use the ServerName directive to set it manually.

/usr/local/apache/bin/apachectl start: httpd could not be started

这个很简单,一看就明白,修改apache配置文件httpd.conf,找到被注释了的ServerName属性,取消注释,添加一个自己的属性名。再执行apachectl start命令,ok。

相关命令

apachectl stop 停止

apachectl restart 重新启动

3.配置fastcgi应用

首先安装fastcgi c++开发包

上传fcgi-2.4.0.tar.gz,顺序执行下面的命令即可

gunzip -c fcgi-2.4.0.tar.gz | tar xvf -

cd fcgi-2.4.0

./configure

make

make install这一步可以不要,只你在开发程序的时候,添加正确include路径和lib路径就可以了

配置fastcgi环境变量,在.bash_profile添加如下内容:

view plaincopy to clipboardprint?

01.###############################################

02.### for fcgi

03.###############################################

04.FCGI_HOME=/usr/src/fcgi

05.PATH=$PATH:$FCGI_HOME/bin

###############################################

### for fcgi

###############################################

FCGI_HOME=/usr/src/fcgi

PATH=$PATH:$FCGI_HOME/bin

后面就可以配置fastcgi应用了.

打开/usr/local/apache/conf/httpd.conf  添加如下配置:

AddHandler fastcgi-script .fcg .fcgi .fpl

Alias /fcgi-bin/ "/usr/local/apache/fcgi-bin/"

AllowOverride None

Options None ExecCGI

Order allow,deny

Allow from all

SetHandler fastcgi-script

FastCgiExternalServer /usr/local/apache/fcgi-bin/echo -idle-timeout 30 -host 192.168.1.113:60000

根据上面的配置,必须在apache目录下创建目录fcgi-bin,不然在下面用ie访问fcgi的时候会有问题。

上面的配置应该都比较好理解,主要是FastCgiExternalServer行的配置

在fcgi-bin下面,其实没有echo程序,只是一个虚拟的fastcgi应用,就像tomcat,weblogic上面配置虚拟的uri一样,其实并物理上存在的路径。-idle-timeout 30 表示超时时间是30秒;-host 192.168.1.113:60000表示在主机192.168.1.113的60000端口建立监听等待fastcgi应用程序启动加入。这时候如果打开ie,输入http://192.168.1.113:8080/fcgi-bin/echo,会显示一个内部服务器错我信息页面,因为这个时候,没有fasgcgi程序加入到应用中来。

接着我们进入fcgi-2.4.0/examples目录,执行命令cgi-fcgi -start -connect 192.168.1.113:60000 ./echo 1,看清楚,这个命令中的地址和段口号和上面FastCgiExternalServer 配置的对应,表示加入到这个虚拟的fastcgi路径中来,就像在tomcat中,即是配置了虚拟的路径,但是如果实际该路经下没有请求的资源,也会包一个错误信息。最后一个参数1表示启动一个进程,如果该资源请求量很大,可以启动多个进程。再刷新ie,这时会有显示一个正常的页面,在第二行会显示这样的文字,Request number 1 Process ID: 11472,如果不断刷新ie,Request number 1已会不断增加,但是Process ID的值保持不变,这就是fastcgi一次运行,一直运行,不像常规的cgi,每次有请求来的时候,都fork一个进程,出来完之后进程退出,由于每次都重新启动一个进程,会带来很大的开销,造成速度变慢。具体fastcgi的介绍在这儿就不再浪费篇幅,大家可以在baidu,google上找到很多介绍。

后面有时间,我会提供两个c/c++在fastcgi应用方面的程序和详细的注释

linux 安装 fastcgi,linux下fastcgi安装配置相关推荐

  1. RedHat Linux AS 5.3 下DNS的配置步骤----为学习Oracle网络管理埋下伏笔

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/16982179 RedHat Linux AS 5.3 下DNS的配置与RedHat Lin ...

  2. 【安装】Windows下Oracle安装图解----oracle-win-64-11g 详细安装步骤

    [安装]Windows下Oracle安装图解----oracle-win-64-11g 详细安装步骤 一. Oracle 下载 官方下地址 http://www.oracle.com/technetw ...

  3. mysql linux centos 安装_Linux centos 下在线安装mysql

    1,查看是否有安装过mysql: #rpm -qa | grep mysql 如果无结果返回,说明没有安装Mysql,可以全新安装. 2,查看在线服务器提供的Mysql相关的安装包有哪些: #yum ...

  4. linux mysql8配置文件_Linux下 MySQL8安装教程

    之前我们介绍了 Windows下的MySQL8安装教程,那么Linux下该如何安装呢?本文以CentOS 7 为例,一步一步教你如何在Linux下安装MySQL-8.0.18 文章目录 下载MySQL ...

  5. 红旗linux 装xp,XP下硬盘安装红旗LINUX

    XP下硬盘安装红旗LINUX---转自红旗社区2008-12-02 23:41拒绝黑屏-红旗Linux硬盘安装简单教程 作者: topeak 初级会员(IPLogged) 日期: 2008-10-23 ...

  6. 红帽子linux硬盘安装教程,XP下硬盘安装RedHat Enterprise Linux 5.5图文教程

    前言:现大已经是大二了,由于学习的需要,想安装 RedHat linux enterprise 学习一下,我整理一下后用06年买的老机成功安装了,下面就是我整理出来的教程(机器环境配置因人而异). 正 ...

  7. ylmf linux y1.15(ubuntu),Ylmf Linux Y1.15 XP下硬盘安装

    硬盘安装适用于没有光驱的朋友,也适用于嫌光驱安装慢的人 1,把GRUB4DOS中grldr文件放到C盘根目录.上传Ubuntu9.04生成的wubildr,安装更兼容, 2,在C盘根目录新建一个men ...

  8. [Linux]Centos 6.3 下源代码安装gcc 4.8.2/4.9.2

    CentOS6.3 自带的gcc版本为4.4.7 1.首先把旧的gcc相关的编译工具安装好 yum install gcc gcc-c++ glibc-static -y 2.下载gcc 4.8.2 ...

  9. rhel mysql安装_RHEL6.4下MySQL安装方法及简单配置

    1.MySQL安装方法简介 1.rpm包yum安装 2.通用二进制包安装 3.源码编译安装 注意:实验所采用的系统平台为:RHEL6.4 2.rpm ins 首页 → 数据库技术 背景: 阅读新闻 R ...

  10. mysql ha 安装 配置文件_Linux下环境安装配置Rose HA全攻略(图)

    如何在Linux环境下安装Rose HA.本文假设环境为Linux操作系统,采用9.2版本的Oracle数据库.下面我们看看,在Linux Oracle环境下如何安装和配置Rose HA. 首先将光盘 ...

最新文章

  1. 如何超越console.log并充分利用浏览器的调试控制台
  2. 作业 20181016-10 每周例行报告
  3. linux内核杂记(14)-Linux kernel release 5.x(1)
  4. Liferay Portal学习笔记-coldTear
  5. 1000种对Java的响应没有死
  6. threading注意点(python 版)
  7. 虚拟机VMware下安装Linux系统,Python3.7之TensorFlow安装
  8. barbuttonitem 文字换行_ios开发 常用代码整理
  9. linux centos7.9图形界面版本下载_适合在任何地方使用的 Linux:15 个小型 Linux 发行版...
  10. 比大小 log_2^3 与 log_3^5
  11. 在web浏览器页面使用IC卡读卡器
  12. er ubnt x设置教程_ubnt edgerouter er-x 路由器怎么设置
  13. Windows 11企业版虚拟机镜像官方版下载及安装
  14. java ajax教程_JAVA AJAX教程第一章—初识AJAX
  15. bit、Byte、KB、MB、GB互相转换的关系
  16. virtualbox虚拟机安装win10详细教程
  17. 休假管理系统的问题描述与词汇表
  18. python在哪里学比较好,python从哪里学起
  19. 【Python系列】Python写csv文件长数字变成科学记数法的解决方案
  20. CSS中的nth-child和nth-of-type选择器

热门文章

  1. 二维码被扫实时返回方案 1
  2. 对不起,我骗了你,我不是一个合格的前端工程师
  3. 英语中不用冠词的情况
  4. 如何判断一个单元格是否为合并单元格
  5. 基于FCM模糊C均值聚类算法的MATLAB仿真
  6. 【FPGA的基础快速入门25------以太网】
  7. 不断挖掘深层次的含义是软文推广长盛不衰的秘诀
  8. 含词尾的三单字新词识别设想
  9. 怎样绘制思维导图?讲述思维导图三招十八式
  10. 颗粒化处理图片,科技感十足(当下最流行的图片处理方式之一)