Как обратиться к скрипту Perl в страничке HTML

zakysj50

Есть два варианта:
1)<meta http-equiv="Refresh" content="0; URL=http://localhost:80/cgi-bin/shownews.cgi">
этот вместо того, чтобы обращаться к скрипту и выполнять его на данной страничке, переходит непосредственно к скрипту (т.е. выдает результаты действия скрипта на новой странице - при этом в адресе высвечивается http://localhost:80/cgi-bin/shownews.cgi -, вместо того, чтобы выполнять на той же http://localhost:80/news.html )
2)<>
эта строчка когда-то работала правильно, но сейчас ничего не делает, т.е. даже не обращается к скрипту.
Подскажите, как нужно правильно?
ЗЫ. для Apache-сервера.

kruzer25

<meta http-equiv="Refresh" content="0; URL=http://localhost:80/cgi-bin/shownews.cgi">
этот вместо того, чтобы обращаться к скрипту и выполнять его на данной страничке, переходит непосредственно к скрипту (т.е. выдает результаты действия скрипта на новой странице - при этом в адресе высвечивается http://localhost:80/cgi-bin/shownews.cgi -, вместо того, чтобы выполнять на той же http://localhost:80/news.html )
Так и должно быть, ты бы ещё header('Location: ...') попробовал.
2)<>
эта строчка когда-то работала правильно, но сейчас ничего не делает, т.е. даже не обращается к скрипту.
Насколько я понимю, это SHTML-команда, соответственно, надо поставить его поддержку в apache.

zakysj50

Почему первая строчка так себя ведет я догадываюсь, только мне это не подходит
как я уже написала, вторая строчка раньше работала
с тех пор поменялся комп и пути, но сам Apache остался тот же. Пути я исправила, но настройки не трогала.
можно все равно посмотреть настройки (стати, у файла news расширение .shtm).
где это проставляется? в mime.types? если там, то где конкретно?

Barbie29

попробуй так <!--# include virtual="/cgi-bin/my_cool_script.pl">
расширение странички должно быть .shtml

zakysj50

Неа, не работает
я посмотрела логи Apache:
для первого варианта <meta http-equiv="Refresh" content="0; URL=http://localhost:80/cgi-bin/shownews.cgi"> в access.log есть строчка в которой Apache обращается к скрипту
а для <#exec cgi="/cgi-bin/shownews.cgi"--> он к скрипту вообще не обращается пишет что получил картинки и news.shtml а про скрипт ничего нет.
В error.log тоже нет никаких ошибок

Barbie29

значит конфиг апача надо править...

zakysj50

А с чем это может быть связано?

Barbie29

ченнить такого типа:
<Files ~ "\.(cgi|shtml)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>

zakysj50

Нашла вот такую штуку в httpd.conf
#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
#AddHandler cgi-script .cgi

zakysj50

Добавлено вот это
<Directory "D:/usr/perl/bin">
Options ExecCGI
</Directory>
ScriptAlias "/__bin_dir__/" "D:/usr/perl/bin/"
Action application/x-perl "/__bin_dir__/perl.exe"

Barbie29

под венду не знаю, винда сукс и маздай!

zakysj50

Ой!...
что-то ему не понравилась в этой записи - Apache перестал загружаться
<Files ~ "\.(cgi|shtml)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
Я посмотрела httpd.conf на наличие SSLOptions - таких там нет.

Barbie29

грю, про венду не знаю...

zakysj50

понятно... Спасибо!

fufa58

А в конце концов на news.html сделать фрейм с shownews.cgi?

Andbar

под венду не знаю, винда сукс и маздай!
Садись, два. Сам ты маздай.
По теме. В конфиге апача должен загружаться модуль mod_include, кроме того должны быть строчки
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
(это вариант для 2го апача, в первом, кажись, там как-то отличалось в каких-то древних версиях)
На счет чего-то там SSLOptions... РЖУНИМАГУ, при чем тут mod_ssl, если доступ к страничке осуществляется через HTTP ?

Andbar

Ах, еще забыл... В Options к папке, в которой находится shtml-файл, должно входить Includes
А в Options к папке, в которой cgi-скрипт, должен быть ExecCGI , впрочем это уже сказали... Ну, еще расшерение cgi должно быть проассоциировано с перлом...
А вообще, у апача в конфиге по умолчанию есть мануал: http://your_host_name:port/manual/
Либо, если ты его вырубил, можешь у меня посмотреть: http://mahoro-san.gznet.ru/manual/ (если ты в ГЗ)
Оставить комментарий
Имя или ник:
Комментарий: