Apache下FastCGI开发(重写文章)

欢迎转载,转载请注明出处:http://hi.baidu.com/coffeefoam/item/06aac9be68966f402bebe32c

重新写一篇利用Apache进行FastCGI开发的文章,其中配置部分有所改进
  

以下操作均是基于Linux,Windows用户可以参考配置  
**********************************************************************  
需要的软件  
Apache2.2.3 http://apache.justdn.org/httpd/httpd-2.2.3.tar.gz  
FastCGI模块 http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz  
Perl的FastCGI模块  
http://search.cpan.org/CPAN/authors/id/S/SK/SKIMO/FCGI-0.67.tar.gz  

***********************************************************************  

步骤1:  
安装apache,我们用最简单的方式来做,只装apache和必要的模块,cgi什么的,先不  
管,让我们的apache先运行起来  
程序代码  

tar xzvf httpd-2.2.3.tar.gz  
cd http-2.2.3  
./configure --prefix=/usr/local/apache2.2.3  
make  
make install  

这样,我们就将apache装在了/usr/local/apache2.2.3目录下,进入  
/usr/local/apache2.2.3/bin目录,执行  

./apachectl start  

访问下http://localhost/看看是不是看到了 It Works!的页面,如果没有,那么我想  
你需要告诉我你看到了什么,否则你就得去apache的站点来看看如何去配置了。  

步骤2:  
通过了步骤1,可以进行FastCGI的安装了  
首先要说明的一下是,FastCGI目前只支持到2.0,如果你用2.2版本以上的apache的话  
,需要先运行一下patch,可以从下面的地址下载  
点击 下载此文件  

Patch下好了吗?我们先把mod_fastcgi-2.4.2.tar.gz解压缩  
程序代码  

tar xzvf mod_fastcgi-2.4.2.tar.gz  

其实安装很容易,我们继续..  
程序代码  

cd mod_fastcgi-2.4.2  
cp /soft/fcgi-patch . 将刚才下的patch拷贝至当前目录  
patch -p1 < fcgi-patch  
cp Makefile.AP2 Makefile  

修改一下Makefile中的几个目录  
top_dir 需要指定,用apache安装的路径,我们当前的是/usr/local/apache2.2.3  
APXS 与 APACHECTL使用绝对路径  
程序代码  

APXS      = /usr/local/apache2.2.3/bin/apxs  
APACHECTL = /usr/local/apache2.2.3/bin/apachectl  

好了,准备工作都好了,安装只需几秒,呵呵  
程序代码  

make  
make install  

好了吗?有没有错, 如果有错的话, 请来告知  

步骤3:  
还没有完成FastCGI与Apache的安装呢,这步就是要配置我们的应用,来使用FastCGI。  
在测试FastCGI之前,你先看下/usr/local/apache2.2.3/modules下有没有  
mod_fastcgi.so模块,如果没有,我想可能是见鬼了,也请告知  

先配下我们的/usr/local/apache2.2.3/conf/http.conf吧  

# Virtual hosts  
Include conf/extra/httpd-vhosts.conf # 放开注释  
    
LoadModule fastcgi_module modules/mod_fastcgi.so  
AddHandler cgi-script .cgi .pl # 传统的CGI处理扩展名  
AddHandler fastcgi-script .fcgi .fpl # FastCGI处理的扩展名  


好了,配置的够多的了,不过现在还得配置一个最重要的东西,  
/usr/local/apache2.2.3/conf/extra/httpd-vhosts.conf  

<VirtualHost *:80>  
    <Directory "/data/www/opensource">  
        DirectoryIndex index.htm index.html  
    </Directory>  
          
    Alias /cgi-bin/ "/data/www/opensource/cgi-bin/"  
       
    <Directory "/data/www/opensource/cgi-bin"  
        AllowOverride None  
        Options ExecCGI  
        Allow from all  
    </Directory>  
    DocumentRoot /data/www/opensource  
    ErrorLog /usr/local/apache2.2.3/logs/error_log  
    ServerName localhost  
    ServerAlias 127.0.0.1  
</VirtualHost>  

步骤3很长,但都是需要做的,看看普通的cgi有没有问题吧。对了,你可能还没有装  
cgi模块吧,确认下,看看/usr/local/apache2.2.3/modules下有没有mod_cgi.so模块  
,没有的话,我们来装下  

cd /usr/local/apache2.2.3/bin  
./apxs -c -i /apache源文件路径/modules/generators/mod_cgi.c  

好了,应该有了,将/usr/local/apache2.2.3/cgi-bin下的两个文件copy到你的cgi目  
录中,我这里的是/data/www/opensource/cgi-bin/ 访问下看看  
http://localhost/cgi-bin/printenv.pl  

成功了吗?如果没有,告诉我发生了什么  

来写个FCGI程序吧  

步骤4:  
得先装下FCGI 对于perl的模块  


tar xzvf FCGI-0.67.tar.gz  
cd FCGI-0.67  
perl Makefile.PL  
make  
make test  
make install  

好了,写个小东西测试下吧,你可以把下面的代码直接进行copy  


#!/usr/bin/perl -w  
use FCGI;  

my $count = 0;  
while (FCGI::accept() >= 0) {  
    print "Content-Type:text/html\n\n";  
    print "Your are ";  
    print $count++;  
    print " Guess.";  
}  

记得文件保存为.fpl结尾哦,存至cgi-bin目录,访问下看看  
http://localhost/cgi-bin/xxx.fpl  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值