Perl CGI-скрипты в HTML - PullRequest
       15

Perl CGI-скрипты в HTML

2 голосов
/ 14 декабря 2011

Я пытаюсь обернуть голову вокруг некоторых сценариев CGI (встроенный блок, на котором я работаю, совсем не похож на PHP), и у меня возник вопрос о том, как Perl-скрипты CGI взаимодействуют с apache и некоторыми HTML-сайтами на нем.

По сути, мне нужна часть файла HTML для загрузки на основе файла конфигурации вне корня документа.Очевидно, что именно здесь и вступает CGI. Теперь проблема в том, что CGI-скрипты также не должны находиться в корне вашего документа, поэтому я не могу просто поместить скрипт в мой корень документа и заставить его запускать HTML.Итак, я поместил свой скрипт в / var / www / cgi / и указал на него apache.

Эта часть прекрасно работает и запускает HTML-страницу, как и должна.Тем не менее, у исходного сайта есть некоторые ресурсы в корне документа (CSS-файлы, Java-апплеты, изображения и т. Д.), К которым у моего нового HTML, созданного в CGI, нет доступа.Итак, что было бы лучшим способом заставить HTML-страницу "строить себя" из сценария CGI?Я прочитал несколько вещей на стороне сервера, которая является одним из вариантов.Существует также возможность поместить вывод CGI в <div src="script"></div> и пару других.Вопрос в том, как лучше всего это сделать?Буду признателен за любой совет.Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Что ж, 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, в зависимости от ваших настроек…

0 голосов
/ 14 декабря 2011

Может быть, я вас неправильно понимаю, но разве не вызовет chdir для документирования корня в вашем Perl-коде?

...