在发送到cgi处理程序之前修改文件

我正在做一个Apache的可移植安装来运行Bugzilla。 这个安装有一个Perl的可移植版本,这是我想mod_cgi使用的一个。 但是,mod_cgi没有任何方式来configuration预期的二进制文件(或每个文件types的二进制文件),所以它依赖于shebang来知道要执行什么。

我的问题是这样的:Bugzilla的perl文件有一个指向#!/usr/bin/perl -T的shebang,因为我在Windows上(不幸的是没有任何事情可以做到) 我想使用特定的Perl发行版对于服务器,我需要修改shebang。

我知道我可以事先运行一个Perl脚本,只是用指向正确的二进制文件replace所有的shebang,但我更喜欢一个更强大的解决scheme。 我想到filter和mod_lua,但Apache和它的模块似乎没有钩子或指令,允许在发送到cgi进程之前处理文件。 他们只能处理客户端发送的请求或最终的输出,然后再发送回客户端。

在发送到cgi进程之前,有没有办法使用Apache或模块处理文件?

有没有办法让cgi进程认为我的目标perl实际上在/usr/bin/perl

第一个问题:不,不容易。 而且我知道这样做的两种方式总是会导致问题“绊脚石”

第二个问题:是的。 你可以简单地创build一个'Drive':\ usr \ bin文件夹,并在那里安装所需的Perl版本。 请注意,“驱动器”需要与Apache服务运行的驱动器盘符相同。 那么你的脚本将会使用这个Perl版本而不需要改变。