设为首页 收藏本站
查看: 600|回复: 0

[经验分享] Apache + Perl + FastCGI安装于配置

[复制链接]

尚未签到

发表于 2015-8-1 12:08:58 | 显示全部楼层 |阅读模式
  1. 安装apache
  将apache源代码解压缩:
一、编译和安装apache:
  # tar zxvf httpd-2.2.11.tar.gz
# cd httpd-2.2.11
  # ./configure
# make
# make install
  默认安装在/usr/local/apache2中。
  安装fcgi
  将fcgi解压缩:
# tar zxvf fcgi-2.4.0.tar.gz
  编译和安装:
# cd fcgi-2.4.0
# ./configure
# make
# make install
  将必要的动态库拷贝到/usr/lib中(cgi程序将依赖这些库文件):
# cp ./libfcgi/.libs/* /usr/lib/
  
  
二、安装mod_fastcgi
将mod_fastcgi-2.4.6.tar.gz解压缩:
# tar zxvf mod_fastcgi-2.4.6.tar.gz
  编译和安装:
# cp Makefile.AP2 Makefile
# make
# make install
  
  三、配置apache
  a) 打开/usr/local/apache2/conf/httpd.conf文件
  b) 添加一行用来加载fastcgi模块:
LoadModule fastcgi_module modules/mod_fastcgi.so
  c) 添加一行将cgi目录设置为/data/www/opensource/cgi-bin:
scriptAlias /cgi-bin/ "/data/www/opensource/cgi-bin/"
  d) 将

...
...

修改成:

    AllowOverride all
    Options all
    Order allow,deny
    Allow from all

  e) 添加一行用于让apache用fastcgi模块解析.cgi后缀的文件:
AddHandler fastcgi-script .cgi .fpl
  四、重启apache
  /usr/local/apache2/bin/apachectl -k restart
  
  PERL的FCGI模块:
1、首先我们安装FastCGI在Perl下的模块。最新版本在http://www.fastcgi.com/
里下载。
最新版本:FCGI-0.56.tar.gz
2、下载 FCGI-0.45.tar.gz 并且解开
$ gunzip -c FCGI-0.56.tar.gz | tar xvf -
3、编译及安装
$ perl Makefile.PL
$ make
$ make install
4、测试
$ cp echo.fpl {你www里Fastcgi所在目录}
$ lynx {你www里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, aud
io-file,
x-sun-attachment, text/enriched, text/richtext, application/andrew-ins
et, x-be2
, application/postscript, message/external-body, message/partial, appl
ication/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/bi
n:/home/m
yhsu/bin:/usr/X11R6/bin:/usr/sbin:/opt/kde/bin:/usr/X11R6/bin:/usr/sbi
n:/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:
  最后,给大家一个fastcgi编程的例子:
#!/usr/local/bin/perl
use CGI::Fast;
  my $counter = 0;
  while (my $cgi = new CGI::Fast) {
print("Content-type: text/html\n\n");
print("We have served $counter requests");
$counter++;
}
  
  附:一个留言版:
  #!/usr/bin/perl -w
use CGI::Fast qw(:standard);
my $data_file="data.txt";
while (my $cgi=new CGI::Fast){
print "Content-Type:text/html\n\n";
#my ($rw);
#$rw=$cgi->param("rw");
#if ($rw eq "r" || $rw eq ""){
print qq~

name:


message:








~;
my @line=&Read_Data;
foreach (@line){
my ($name,$content)=split(/&&/,$_);
print qq~
name:$name

message:$content

~;
}
#}else{
my $name=$cgi->param("name");
my $content=$cgi->param("content");
#local $ok=1;
if ($name eq "" || $content eq ""){
&Print_Erro("please input all message!");
}else{
#if ($ok){
&Write_Data($name,$content);
&Print_Succ("me sucessfull");
#}
}
}
  sub Read_Data {
open (FILE,$data_file);
my @line=;
close (FILE);
return @line;
}
  sub Write_Data {
my ($name,$content)=@_;
open (FILE,">>$data_file");
print FILE "$name&&$content\n";
close (FILE);
}
  sub Print_Succ {
print qq href="java script:history.go(-1);">look at~;
}
  sub Print_Erro {
$ok=0;
print qq href="java script:history.go(-1);">go back~;
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92992-1-1.html 上篇帖子: Linux下安装Apache 2.4 下篇帖子: Apache虚拟主机(vhost)配置教程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表