apache 不能访问 cgi-bin目录下的文件

  1. 云栖社区>
  2. 博客列表>
  3. 正文

apache 不能访问 cgi-bin目录下的文件

胡杨615 2014-07-18 08:54:00 浏览707 评论0

摘要: apache 不能访问 cgi-bin目录下的文件 转自:http://www.cnblogs.com/shuang/archive/2008/12/08/1350718.htm 我在本机上配置perl的运行环境老是不成功的原因在于没有去掉httpd.conf中的 ScriptAlias /cgi-bin/ "F:/project/perl/cgi-bin/"前面的“#”

apache 不能访问 cgi-bin目录下的文件


转自:http://www.cnblogs.com/shuang/archive/2008/12/08/1350718.htm



我在本机上配置perl的运行环境老是不成功的原因在于没有去掉httpd.conf中的
ScriptAlias /cgi-bin/ "F:/project/perl/cgi-bin/"前面的“#”(去掉#后还要重起apache,从任务栏的Monitor Apache Servers,否则不起作用,好像apache只是在每次启动时,才使用httpd.conf文件),当然这是网上教程的cgi-bin的目录,我对应的配置是:
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/",也可能与perl的安装路径有关,我用的是ActivePerl-5.10.0.1004-MSWin32-x86-287188.msi,前几次都没有与apache装在一起,最后我把perl装在和Apache2.2同一级目录上,但是忘了为perl创建目录,所以看起来很乱。

此前一直报如下的错误:

++++++++++++++++++++++++++++++++++
不能直接访问该目录下的text文档

会报错:



+++++++++++++++++++++++++++++++++
关于perl的其他配置:

<Directory "D:/project/perl/cgi-bin/">
    AllowOverride All
    Options All
    Order allow,deny
    Allow from all
</Directory>
  AddHandler cgi-script .cgi .pl .exe  


++++++++++++++++++++++++++++++++++++++++++++
参考资料:http://purpen.javaeye.com/blog/101328
今天看了一下用Perl写cgi的教程,于是想测试一下成果,于是,开始了安装配置全过程.

    因为,以前做的是php开发,apache已安装成功,并运行正常(安装路径:E:/webserver/Apache2),所以,在此对apache2的安装就不多做说明.(详细参考:http://purpen.javaeye.com/admin/show/98673).

    在此着重说明perl的安装过程及在apache下的配置.

   1, 下载windows环境下的ActivePerl For Windows V5.8.8.820(http://www.skycn.com/soft/1211.html).

   2, 解压缩,双击ActivePerl-5.8.8.820-MSWin32-x86-274739.msi安装.在此需要注意的是安装路径,Perl安装的缺省目录位置为C:\usr,当然,你可以安装在任意你喜欢的目录,我就装在(E:/webserver/perl/,为了便于管理)

   3.配置Apache以支持CGI

    打开httpd.conf修改:

  1. ScriptAlias /cgi-bin/ "F:/project/perl/cgi-bin/"  

  2. <Directory "D:/project/perl/cgi-bin/">
        AllowOverride All
        Options All
        Order allow,deny
        Allow from all
    </Directory>
  3.   
  4. AddHandler cgi-script .cgi .pl .exe  


     其中"F:/project/perl/cgi-bin/"是我打算存放*.pl脚本的目录,把目录的访问权限都设为All.(注意删除前面的#,如果有的话),

     在此,apache支持perl/cgi的环境就配置完整了.

    4.在F:project/perl/cgi-bin目录下创建一个hello.pl测试一下.
 

  1. #!E:/webserver/perl/bin/perl.exe  
  2. #scriptname hello.pl  
  3.   
  4. print "Content-type: text/html\n\n";  # 此句一定要写而且写准确.  
  5. print "Hello, World...\n";  



    注意:当您浏览cgi程序出现500错误的时候可以看一下您的程序,是不是以:#!E:/webserver/perl/bin/perl.exe开头。
或者没有print "Content-type: text/html;\n\n";

   运行hello.pl,出现一下显示:

【云栖快讯】你想见的Java技术专家都在这了,向大佬提问,有问题必答  详情请点击

网友评论

胡杨615
文章84篇 | 关注1
关注
面向阿里云ECS实例、HPC和Docker的文件存储服务。 查看详情
一个稳定可靠的集中式访问控制服务。您可以通过访问控制将阿里云资源的访问及管理权限分配给您的企... 查看详情
MySQL 是全球最受欢迎的开源数据库,阿里云MySQL版 通过深度的内核优化和独享实例提供... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航