`
fantaxy025025
  • 浏览: 1279530 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Perl_Apache_CGI_安装_windows_win7_vista

    博客分类:
  • Perl
阅读更多

为了回家工作和学习perl,不得不在laptop上装一个windows的perl环境。

Google一下,安装步骤和注意事项。另外还是主要看看cpan上的介绍比较官方。

 

还是那句老话,按照这里的流程,但不要拘泥于这里,因为大家的知识背景和软件环境不一定相同,请随机应变吧~

 

 

1. 安装Apache ( http://httpd.apache.org) )和 ActiveState Perl (http://www.activestate.com/ )。

如果去cpan上看,还是可以到这里的。同时可以看到,除了ActiveState的perl外,还有一个开源的环境,应该也是可以用的。


2. 安装mod_perl。
ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl.ppd安装完毕之后会提示输入Apache的路径,输入类似于 D:/Apache2/modules。

    注意:可以先到这里看看详情http://theoryx5.uwinnipeg.ca/ppmpackages,看到提示你安装跟自己的perl版本一致的版本,我的版本是(命令perl -v) 得到v5.12.2,所以应该用如下命令安装:

C:\setup\perl\bin>ppm install http://cpan.uwinnipeg.ca/PPMPackages/12xx/mod_perl.ppd

详情看这里:http://cpan.uwinnipeg.ca/PPMPackages/

    另外:我碰到如下提示,所以就先安装gcc编译器吧。

It looks like you don't have a C compiler on your PATH, so you will not be
able to compile C or XS extension modules.  You can install GCC from the
MinGW package using the Perl Package Manager by running:                                
    ppm install MinGW                                                                                  

 

    安装完毕后显示: 

Fetching http://cpan.uwinnipeg.ca/PPMPackages/12xx/x86/mod_perl.so ...  done!
Where should mod_perl.so be placed? [D:/Apache2.2/modules] C:\setup\Apache2.2\modules
mod_perl.so has been successfully installed to C:/setup/Apache2.2/modules.
To enable mod_perl, put in the directives
   LoadFile "C:/Path/to/Perl/bin/perl510.dll"
   LoadModule perl_module modules/mod_perl.so
in httpd.conf. For more information, visit
   http://perl.apache.org/
and especially see
   http://perl.apache.org/docs/2.0/rename.html

 


3. 配置mod_perl。修改httpd.conf。

增加以下几行:

LoadFile "c:/setup/perl/bin/perl512.dll"
LoadModule perl_module modules/mod_perl.so

如果安装的httpd自带ssh,则不需要手动配置添加如下行:

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

 

修改:

在Apache的安装目录下找到conf/httpd.conf文件,用记事本或其他的文本编辑器打开。

查找“ScriptAlias /cgi-bin/”,可能你的会是下面的这个结果:

ScriptAlias /cgi-bin/ “C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/”

如果这行前面的有个“#”符号,就将它去掉。

找到下面的这段文本:

<Directory />
Options FollowSymLinks
AllowOverride all
Order deny,allow
Deny from all
</Directory>

加上“+ExecCGI”,即:

<directory />
Options FollowSymLinks +ExecCGI
AllowOverride all
Order deny,allow
Deny from all
</Directory>

一般来说,Perl CGI脚本就是以cgi为拓展名的,不过你也可以设置成pl为拓展名。修改方法是这样的,查找下面的这行:

AddHandler cgi-script .cgi

在末尾加上“.pl”,即:

AddHandler cgi-script .cgi .pl


4. 重新启动Apache。

 

补充问题:

问题:The server encountered an internal error or misconfiguration and was unable to complete your request.

查看$HOME/logs/error.log可以看到下面的错误:

The system cannot find the file specified.  : couldn't create child process: 720002: printenv.pl
The system cannot find the file specified.  : couldn't spawn child process: C:/setup/Apache2.2/cgi-bin/printenv.pl
网上搜索了很多关于此问题的答案,无果。最终解决方法:

还是看httpd的官方文档,终于解决。可能的问题为:

#1. perl文件的文件头路径没有写正确,如#! c:/setup/perl /bin/perl.exe

#2. 新的httpd2.2(2.0可能也这样),需要在最前面增加下面一行(下面下划线)。

#! c:/setup/perl/bin/perl.exe
print "Content-type: text/html\n\n";

...your_content_below...

 

为这个问题折腾了整整一天半。这一行的作用主要是告诉浏览器返回的类型,这涉及到标准CGI输出,还要明白Server和CGI和客户端的关系、通信、作用。

--有些详细的东西,尤其是版本不一致的情况下,一定要看官方的文档,否则很容易走弯路。

 

 

 

分享到:
评论
1 楼 thankfantax 2012-03-11  
感谢fantaxy025025!我也碰到同样问题,已经几天昏天黑地,眼也花了。按你所说的,最后成功了。httpd.conf里还要增加: Listen 127.0.0.1:80 。你所说的系统找不到文件问题,我也遇到了,按你所说改程序之后也解决了。感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢!

相关推荐

    Perl-CGI.rar_CGI Perl_CGI编程_cgi

    8. **持久连接和FastCGI**:为了提高性能,可以学习如何使用Apache的mod_perl或者FastCGI来实现Perl CGI的持久化运行,从而减少每次请求时的启动开销。 9. **模板系统**:当CGI程序复杂性增加时,使用模板系统(如...

    ActivePerl_mtk_feature_phone_win10_ltsc_2019.zip

    标题 "ActivePerl_mtk_feature_phone_win10_ltsc_2019.zip" 提供了关键信息,这是一款专为Windows 10 LTSC 2019版本的MTK(MediaTek)特色手机设计的Perl环境,即ActivePerl的一个特定版本。描述中指出这个版本是...

    Perl_CGI.rar_4 3 2 1_cgi_html form perl cgi_perl cgi

    Perl_CGI六天入门 第一天 1.1 Unix环境 1.2 chmod命令 1.3 定位Perl和sendmail 第二天 2.1 使用Emacs 2.2 Perl简介 2.3 HTML FORM 第三天 3.1 回应脚本 3.2 脚本解释 3.3 BODY部分 第四天 4.1...

    ActivePerl_5.16

    ActivePerl是Perl编程语言的一个流行的Windows版本,由ActiveState公司提供。标题中的"ActivePerl_5.16"指的是该软件的特定版本,即5.16系列。Perl是一种强大的文本处理和脚本编程语言,广泛应用于系统管理、网络...

    PERL perl_add_ons 3

    在本文中,我们将深入探讨"PERL perl_add_ons 3"的相关知识点,包括其安装、使用以及一些常见的Perl模块。 首先,Perl的模块安装通常通过CPAN(Comprehensive Perl Archive Network)进行,这是一个庞大的开源Perl...

    Perl code.rar_Perl_Perl 代码_perl code

    Perl在处理文本文件、网络编程、系统管理任务(如脚本自动化)、Web开发(尤其是与CGI相关的应用)以及生物信息学等领域有广泛的应用。它的强大力量在于能够快速编写出解决特定问题的代码,这得益于其灵活的语言结构...

    Perl_CGI入门

    Perl CGI(Common Gateway Interface)是一种使用Perl编程语言与Web服务器交互的技术,主要用于创建动态网页。对于初学者,尤其是那些已经熟悉PHP的开发者来说,Perl CGI是扩展技能树的一个良好起点,因为两者在处理...

    ActivePerl_5.16.2.3010812913_BDdl.exe

    ActivePerl_5.16.2.3010812913_BDd语言解释器

    perl_Perl_

    标题中的"perl_Perl_"可能是指一系列关于Perl编程的示例或教程,而描述则提到“读取源文件,将字母大小写转换,最后输出一个新文件”,这是Perl处理文本时常见的任务。 在Perl中,读取文件通常使用内置的文件句柄和...

    Perl_CGI.chm

    Perl_CGI.chm

    ActivePerl_x64_5.24.1.2402.zip

    ActivePerl是Perl编程语言的一个预编译版本,特别为Windows平台设计,以提供方便的安装和使用环境。标题中的"ActivePerl_x64_5.24.1.2402.zip"指的是64位架构的ActivePerl,版本号为5.24.1,该版本已经打包在ZIP压缩...

    perl_example.zip_Perl_it

    7. **网络编程**:Perl可以轻松处理TCP/IP套接字,用于构建网络服务和客户端程序。 通过学习和实践"perl_example.zip"中的内容,IT人员能够深化对Perl的理解,提高其在实际工作中的应用能力。无论是系统管理员还是...

    perl_TimeDate.rar_activeperl timeda_perl TimeDate_perl Timeda_pe

    在Perl中,使用Time::Date通常需要先通过CPAN(Comprehensive Perl Archive Network)下载并安装该模块。然而,在这里提到的可能是ActivePerl的环境,ActivePerl是Perl的一种预编译版本,包含了大部分常用的Perl模块...

    Effective_Perl_Programming_Writing_Better_Programs_with_Perl.rar

    Effective_Perl_Programming_Writing_Better_Programs_with_Perl.rar Effective_Perl_Programming_Writing_Better_Programs_with_Perl.rar

    perl_library(1).zip

    "Setup.exe" 是一个Windows安装程序,可能是为了方便Windows用户安装和管理Perl库中的组件。这个文件可能包含一个图形界面,引导用户选择要安装的Perl模块,配置路径,以及设置环境变量。通过运行这个安装程序,...

    Teach_Yourself_CGI_Programming_With_Perl_5_In_A_Week

    ### 教程:《一周内学会Perl 5 CGI编程》 #### 一、引言 在数字时代,网站的功能性和互动性变得越来越重要。而实现这些功能的关键技术之一就是CGI(通用网关接口)编程。Perl作为一种强大的脚本语言,在CGI编程...

    perl_open.rar_open_win32apiperl

    在Windows环境中,Perl可以利用Win32 API(应用程序接口)来执行一些更底层的操作,比如打开文件。"perl_open.rar_open_win32apiperl"这个主题就涉及到如何在Perl中调用Win32 API来实现文件的打开功能,并且会弹出一...

    cgi.rar_CGI linux_cgi_cgi post_cgi post g_windows cgi post g

    这个例子对于学习如何在不同的操作系统,如Windows,使用CGI技术非常有帮助。 首先,CGI的核心概念是它充当了HTTP服务器与外部应用程序之间的桥梁。当用户通过浏览器发送请求到服务器,CGI脚本会被执行以处理这些...

    ActivePerl_5.16.2_14792_BDdl

    ActivePerl_5.16.2_14792_BDdl安装程序

    apache-web-server-lm.zip_Apache Web_Apache Web Server_apache

    - 安装与启动:详细步骤指导如何在不同操作系统上安装Apache并启动服务。 - 基本配置:介绍如何配置httpd.conf文件以满足基本的Web服务器需求。 - 虚拟主机:讲解如何通过Apache实现多个网站在同一服务器上的运行...

Global site tag (gtag.js) - Google Analytics