HTML中的Perl CGI脚本

时间:2011-12-14 02:21:23

标签: html perl apache cgi

我试图围绕一些CGI脚本(我所使用的嵌入式盒子并不像PHP),我有一个关于CGI perl脚本如何与apache及其上的一些HTML站点交互的问题。

基本上,我需要根据文档根目录之外的配置文件加载部分HTML文件。显然,这就是CGI介入的地方。现在,问题是CGI脚本也不应该在你的doc根目录中,所以我不能把脚本放在我的doc根目录中并使它成为HTML。所以,我把我的脚本放在/ var / www / cgi /中,并指向它的apache。

该部分运行良好,它会像它应该的那样触发HTML页面。但是,原始站点在其doc根目录(css文件,java applet,图像等)中有一些资源,我的新CGI制作的HTML无法访问。那么,什么是使HTML页面“自行构建”CGI脚本的最佳方法呢?我在服务器端包含了一些内容,这是一个选项。还可以选择将CGI输出放在<div src="script"></div>和其他几个中。问题是,这样做的最佳方式是什么?我很感激任何建议。先谢谢!

2 个答案:

答案 0 :(得分:2)

好吧,Perl对于类似的东西可能有些过分(就像你说的,你可以用X-SSI做到这一点),但听起来你可能想要的是将Perl代码的片段嵌入到你的静态HTML中文件?

如果您有mod_include,则可以执行以下操作:

   <applet … >
     <!--#exec cgi="/cgi-bin/readconfig.cgi" -->
   </applet>

并让readconfig.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" />
   ];

您需要启用Options +includes来解析X-SSI,可能会将其放在.htaccess文件中,具体取决于您的设置......

答案 1 :(得分:0)

也许我误解了你,但是不会打电话给chdir来记录你的Perl代码中的root吗?