Linux下 Apache服务器配置CGI(perl)

本文详细介绍了在Linux 3.18.0-kali3-amd64系统上,Apache 2.2.22服务器配置CGI支持Perl的步骤。包括检查CGI模式、配置Apache模块、修改站点配置文件以及创建和运行CGI脚本的过程。通过这些步骤,最终可以在浏览器中成功运行CGI Perl应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 环境:

操作系统:Linux 3.18.0-kali3-amd64 #1 SMP Debian 3.18.6-1~kali2 x86_64 GNU/Linux

Apache:Apache/2.2.22 (Debian)

perl:v5.14.2 built for x86_64-linux-gnu-thread-multi


注:网上找到的很多文章都说要修改http.conf文件,但我的apache版本可能没有这个文件,于是今天摸索了一下,终于配置好了CGI。

2、 配置Apache

(1)确保有CGI mode,可以找到Apache配置路径,找到mods-available路径下,查看是否有cgi相关的.conf 和.load 文件,

我的配置文件路径在 /etc/apache2/,进入mods-available后发现有cgi.load文件,但没有cgi.conf文件,也许不需要conf文件吧(我这么想的)。

但这个路径下的文件都是apache当前可以使用的mods,二进制共享库位置一般都在/usr/lib/apache2/中,要使某一个模块可以在apache启动时

启动,需要在配置文件路径的mods-enabled路径下添加到mods-available中相关模块文件的软连接(若不对可使用硬链接试试,这里我系统默认

有的)。比如这个cgi模块,在mods-available路径下的文件有cgi.load,则在mods-enabled路径下加入指向此文件的软连接,若还有.conf文件,同

样需要建立链接。

我系统上cgi.load文件的内容是:

LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so

(2)在mods-available路径下找到mime模块的配置文件,我系统中的配置文件是mime.conf,其内容是一个由xml括起来的配置内容:

<IfModule mod_mime.c>
...
</IfModule>

在中间加上一行:

AddHandler cgi-script .cgi # 若扩展名有多种,可以用空格分隔开,依次写出来,如:.pl .sh .py

(3)将使用CGI的站点配置文件加上CGI执行标记:

我系统中的apache对站点配置也使用像模块管理的方式,即有一个sites-available和sites-enabled路径,其中available中是所有站点的配置文件,enabled

中是可以允许apache服务的站点。我使用的是默认的default站点,也即是金典的“It Works!”,配置文件中已经写了一个可以执行的cgi路径:

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
     AllowOverride None
     Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
     Order allow,deny
     Allow from all
</Directory>

其中的ScriptAlias是将URL的/cgi-bin/路径映射到本机的/usr/lib/cgi-bin/路径,之后的Directory 就是配置此路径的节点,在Options 这一项必须添加+ExecCGI

标记。


(4)创建cgi脚本,运行:

我们可以在本地的/usr/lib/cgi-bin/路径下开始写所要运行的cgi脚本了:

#!/usr/bin/perl

use strict;
use warnings;

print <<END
Content-type: text/html\n\n
<html>
    <body>
        <div>
            <a>shit!CGI...</a>
        </div>
    </body>
</html>
END
注意:其中第一行打印Content-type必须写出来,不然会出现500错误状态码:Internal Server Error! 以下几点也很重要,否则可能同样产生此错误。

a)  将cgi文件的权限掩码至少改成可读,可执行权限,即使用chmod  555 cgi.cgi,可使用ls -lah查看。

b)  脚本第一行的shebang行(#!/usr/bin/perl)必须写出。

重启apache: service apache2 restart

最后运行时在浏览器URL栏写上:http://localhost/cgi-bin/cgi.cgi即可。


Apache Tutorial: http://httpd.apache.org/docs/2.2/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值