HTML中的Perl CGI脚本
我正试图对一些CGI脚本(我所使用的嵌入式框不太喜欢PHP)有所了解,我有一个问题,就是CGI perl脚本如何与apache和它上面的一些HTML站点交互 基本上,我需要根据文档根目录之外的配置文件加载部分HTML文件。显然,这就是CGI介入的地方。现在,问题是CGI脚本也不应该在您的文档根目录中,所以我不能只是将脚本放在我的文档根目录中,然后让它触发HTML。因此,我将脚本放在/var/www/cgi/中,并将apache指向它HTML中的Perl CGI脚本,html,perl,apache,cgi,Html,Perl,Apache,Cgi,我正试图对一些CGI脚本(我所使用的嵌入式框不太喜欢PHP)有所了解,我有一个问题,就是CGI perl脚本如何与apache和它上面的一些HTML站点交互 基本上,我需要根据文档根目录之外的配置文件加载部分HTML文件。显然,这就是CGI介入的地方。现在,问题是CGI脚本也不应该在您的文档根目录中,所以我不能只是将脚本放在我的文档根目录中,然后让它触发HTML。因此,我将脚本放在/var/www/cgi/中,并将apache指向它 这部分运行得很好,并且像它应该的那样激发出一个HTML页面。然
这部分运行得很好,并且像它应该的那样激发出一个HTML页面。然而,原始站点的文档根中有一些资源(css文件、java小程序、图像等),我的新CGI制作的HTML无法访问这些资源。那么,让HTML页面在CGI脚本的基础上“自行构建”的最佳方法是什么呢?我已经阅读了一些关于服务器端包括的内容,这是一个选项。还可以选择将CGI输出放在
和其他几个文件中。问题是,这样做的最佳方式是什么?如果您有任何建议,我将不胜感激。事先谢谢 也许我误解了你,但是调用chdir
在你的Perl代码中记录根目录难道不起作用吗?好吧,Perl对于类似的东西来说可能有些过火了(就像你说的,你可以用X-SSI来做),但听起来您可能希望将Perl代码片段嵌入到其他静态HTML文档中
如果您有mod_include
,您可以执行以下操作:
<applet … >
<!--#exec cgi="/cgi-bin/readconfig.cgi" -->
</applet>
您需要启用
Options+includes
来解析X-SSI,可能的方法是将其放入.htaccess
文件中,具体取决于您的设置…您所说的“无权访问”是什么意思?如果您(例如)输入
,是否会出现错误或其他情况,我认为可以以这种方式引用所有资源,但随后我必须使用这些新的“半绝对”文件路径(仍然是相对于doc root的,但是绝对的)重新生成页面。除此之外,我还必须让我的所有用户都指向CGI文件夹中的某个内容……我想重要的问题是:你需要CGI做什么?我只是读取一个配置文件(使用regex)的一部分,然后将其放入一个applet参数中,php将非常适合它,因为当cgi文件夹中没有资源时,客户端浏览器仍会在其中查找资源。
#!/usr/bin/perl -WT
print "Content-Type: text/html\n\n";
open my $config, '<', '/foo/bar/baz.qux'
or die "<!-- can't read baz.qux: $! -->";
my $line = <$config> until $line =~ /interesting: ([a-z]+[0-9]+)/;
my $interesting = $1;
print qq[
<param value="$interesting" />
];