我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 网络编程 > CGI专区 > 实战 FastCGI_2. 安装 FastCGI之二
热门文章排行
热门文章排行 CGI教程:记录用户记录脚本之二(10-27)
跟我学Perl(6)(10-30)
跟我学Perl(4)(10-30)
CGI教程:调用CGI脚本文件的例子之四(10-27)
CGI教程:记录用户记录脚本之一(10-27)
精采文章排行
精采文章排行 实战 FastCGI_2. 安装 FastCGI之一(10-30)
实战 FastCGI_1.克服 CGI 的瓶颈(3)(10-30)
实战 FastCGI_1.克服 CGI 的瓶颈(2)(10-30)
实战 FastCGI_1.克服 CGI 的瓶颈(1)(10-30)
Perl程序设计中常用的函数之四(10-30)
技术专题推荐
网管论坛交流
 

实战 FastCGI_2. 安装 FastCGI之二 

作者:   来源:   点击:   日期:2006-10-30

2.3 安装 FastCGI 开发套件

1. 下载 fcgi-devkit-2.1.tar.gz 并且解开:
$ gunzip -c fcgi-devkit-2.1.tar.gz | tar xvf -

2. 编译
$ cd fcgi-devkit-2.1
$ ./configure
$ make

3. 将 C 的标头档 (header file) 及函式库 (library) 安装至系统:
$ cp -rp include /usr/local/include/fastcgi
$ cp libfcgi/libfcgi.a /usr/local/lib

2.4 测试 FastCGI

  在 fcgi-devkit 套件中内含一个简单的 FastCGI 范例程序 - echo.c,我们用它来做测试系统是否安装正确。直接把已经编译好的 echo.fcg 复制到预设放置 FastCGI 程序的目录下:

$ cd fcgi-devkit-2.1/example
$ cp echo.fcg /usr/local/www/fcgi-bin

  现在赶快用浏览器连到 http://localhost/fcgi-bin/echo.fcg 看看,如果看到以下结果表示您大功告成啦:

FastCGIecho
Requestnumber1,ProcessID:1013

Nodatafromstandardinput.

Requestenvironment:
FCGI_ROLE=RESPONDER
DOCUMENT_ROOT=/usr/local/apache/htdocs
HTTP_ACCEPT=text/html,text/plain,application/applefile,application/x-metamai
l-patch,sun-deskset-message,mail-file,default,postscript-file,audio-file,
x-sun-attachment,text/enriched,text/richtext,application/andrew-inset,x-be2
,application/postscript,message/external-body,message/partial,application/p
gp,application/pgp,video/mpeg,video/*,image/*,audio/*,audio/mod,text/sgm
l,video/mpeg,image/jpeg,image/tiff,image/x-rgb,image/png,image/x-xbitmap,
image/x-xbm,image/gif,application/postscript,*/*;q=0.01
HTTP_ACCEPT_ENCODING=gzip,compress
HTTP_ACCEPT_LANGUAGE=en
HTTP_HOST=localhost
HTTP_NEGOTIATE=trans
HTTP_USER_AGENT=Lynx/2.8.1pre.9libwww-FM/2.14
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/sbin:/opt/kde/bin:/home/m
yhsu/bin:/usr/X11R6/bin:/usr/sbin:/opt/kde/bin:/usr/X11R6/bin:/usr/sbin:/opt/kd
e/bin
REMOTE_ADDR=127.0.0.1
REMOTE_PORT=1024
SCRIPT_FILENAME=/usr/local/www/fcgi-bin/echo.fcg
SERVER_ADMIN=myhsu@localhost.localdomain
SERVER_NAME=localhost.localdomain
SERVER_PORT=80
SERVER_SIGNATURE=

Apache/1.3.6Serveratlocalhost.localdomainPort80

SERVER_SOFTWARE=Apache/1.3.6(Unix)mod_fastcgi/2.2.2
UNIQUE_ID=N1ptln8AAAEAAAPdDRkGATEWAY_INTERFACE=CGI/1.1
SERVER_PROTOCOL=HTTP/1.0REQUEST_METHOD=GETQUERY_STRING=
REQUEST_URI=/fcgi-bin/echo.fcgSCRIPT_NAME=/fcgi-bin/echo.fcg

Initialenvironment:

  请注意在以上程序所显示的 Request number 和 Process ID 这两个变量,当我们继续重新加载这支程序时,Request number 会一直累加而 Process ID 的值都不会改变。这表示这支程序在第一次激活之后就一直执行着没有结束,而且在每次联机请求中所参照到的变量空间是相同的 (所以 Request number 会不断加一)。
到此为止,我们已经成功建立起一个可供发展 FastCGI 应用程序的环境及执行 FastCGI 应用程序的网站执行平台。

2.5 安装 FCGI 模块 for Perl

  如果要使用 Perl 来撰写 FastCGI 的程序,必须安装 FCGI.pm 这个模块,安装的方法如下:

1. 下载 FCGI-0.45.tar.gz 并且解开

$ gunzip -c FCGI-0.45.tar.gz | tar xvf -

2. 编译及安装

$ perl Makefile.PL
$ make
$ make install

3. 测试

$ cp echo.fpl /usr/local/www/fcgi-bin
$ lynx http://localhost/fcgi-bin/echo.fpl

如果顺利的话,应该会看到如下的结果:

FastCGI echo (Perl)
Request number 1
No data from standard input.
Request environment:

DOCUMENT_ROOT=/usr/local/apache/htdocs
FCGI_ROLE=RESPONDER
GATEWAY_INTERFACE=CGI/1.1
HTTP_ACCEPT=text/html, text/plain, application/applefile, application/x-metamai
l-patch, sun-deskset-message, mail-file, default, postscript-file, audio-file,
x-sun-attachment, text/enriched, text/richtext, application/andrew-inset, x-be2
, application/postscript, message/external-body, message/partial, application/p
gp, application/pgp, video/mpeg, video/*, image/*, audio/*, audio/mod, text/sgm
l, video/mpeg, image/jpeg, image/tiff, image/x-rgb, image/png, image/x-xbitmap,
image/x-xbm, image/gif, application/postscript, */*;q=0.01
HTTP_ACCEPT_ENCODING=gzip, compress
HTTP_ACCEPT_LANGUAGE=en
HTTP_HOST=localhost
HTTP_NEGOTIATE=trans
HTTP_USER_AGENT=Lynx/2.8.1pre.9 libwww-FM/2.14
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/sbin:/opt/kde/bin:/home/m
yhsu/bin:/usr/X11R6/bin:/usr/sbin:/opt/kde/bin:/usr/X11R6/bin:/usr/sbin:/opt/kd
e/bin
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_PORT=1427
REQUEST_METHOD=GET
REQUEST_URI=/fcgi-bin/echo.fpl
SCRIPT_FILENAME=/usr/local/www/fcgi-bin/echo.fpl
SCRIPT_NAME=/fcgi-bin/echo.fpl
SERVER_ADMIN=myhsu@localhost.localdomain
SERVER_NAME=localhost.localdomain
SERVER_PORT=80
SERVER_PROTOCOL=HTTP/1.0
SERVER_SIGNATURE=

Apache/1.3.6 Server at localhost.localdomain Port 80
SERVER_SOFTWARE=Apache/1.3.6 (Unix) mod_fastcgi/2.2.2
UNIQUE_ID=N1VIbX8AAAEAAAQnKKo
More on its way ... wait a few seconds
Initial environment:

  同样的,如果持续结 http://localhost/fcgi-bin/echo.fpl 可以看到 Request Number 不断增加,表示 echo.fpl 已经被激活而且持续执行着。

  至此,一个可供执行 FastCGI 程序的网站服务器以及撰写 FastCGI 程序的开发环境已经建置完成,接下来就只等着新的程序放上去啰。



文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·实战 FastCGI_2. 安装 FastCGI之一 ·实战 FastCGI_1.克服 CGI 的瓶颈(3)
·实战 FastCGI_1.克服 CGI 的瓶颈(2) ·实战 FastCGI_1.克服 CGI 的瓶颈(1)
·perl实例分析教程之十六 ·perl实例分析教程之九

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。