Отправляет email-рассылки с помощью сервиса Sendsay

Apache не выполняет скрипты на BASH

i686-pc-none)

Здравствуйте все!
Собственно, subj. Вот, к примеру, скрипт:

#!/bin/bash
echo "Content-type: text/html\r\n\r\n"
echo
echo
echo "<html>"
echo "Yyy!"
echo "</html>

Вызывается ссылкой: <a href="/cgi/bin/first.sh">First</a>
Вот соответствующие куски из httpd.conf:

...
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
...
<Directory "/var/www/cgi-bin">
Options +ExecCGI
AllowOverride None
Allow from from all

AddHandler cgi-script cgi pl sh
Order allow,deny
</Directory>
...

Браузеры спрашивают, что делать с этм файлом. В
/var/log/httpd/error_log вот такое:

[Fri Apr 23 19:27:22 2004] [error] [client 127.0.0.1] script not found
or unable to stat: /var/www/cgi- bin/first.sh, referer:
http://www.9a4172.home/javascript.html

Файл исполнямый, с правами все в порядке, расширения пробовал разные -
не помогает. Точно такой же скрипт на Perl работает.
В чем же дело?

Ответить   9A4172 Fri, 23 Apr 2004 19:59:06 +1100 (#131642)

 

Ответы:

i686-pc-linux-gnu)

On Fri, 23 Apr 2004 19:59:06 +1100
9A4172 <9a41***@m*****.ru> wrote:

^^^^^^^^^

^^^^^^^^^
Опечатался в ссылке?

WBR,
Antony Dovgal aka tony2001
tony20***@p*****.net || anto***@d*****.com
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 6667; Возраст листа: 272; Участников: 1086
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/131655



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Antony Dovgal Fri, 23 Apr 2004 16:52:29 +0400 (#131655)

 

i686-pc-linux-gnu)

On Fri, 23 Apr 2004 19:59:06 +1100
9A4172 <9a41***@m*****.ru> wrote:

^^^^^^^^^

^^^^^^^^^
Опечатался в ссылке?

WBR,
Antony Dovgal aka tony2001
tony20***@p*****.net || anto***@d*****.com
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 6668; Возраст листа: 272; Участников: 1086
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/131690



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Antony Dovgal Fri, 23 Apr 2004 16:52:29 +0400 (#131690)

 

i686-pc-none)

Привет, Antony Dovgal <tony20***@p*****.net> !
Вы писали Fri, 23 Apr 2004 16:52:29 +0400:

Извините, я, дурак, не заметил, в чем различие, даже письмо
возмущенное написал:) Действительно, опечатка, но только в письме, в
HTML-файле все правильно(т.е. <a href="/cgi-bin/first.sh">First</a>).
Так что проблема, к сожалению остается.

Ответить   9A4172 Sat, 24 Apr 2004 22:22:14 +1100 (#132184)

 

i686-pc-none)

Привет, Antony Dovgal <tony20***@p*****.net> !
Вы писали Fri, 23 Apr 2004 16:52:29 +0400:


А в чем проблема? Я так понял, в корне дерева каталогов (виртуальном)
web-сервера находятся каталоги html, cgi-bin и т.д.

Вот работающий скрипт на Perl:

#!/usr/bin/perl
print "Content-type: text/html\r\n\r\n";
print "<html><head>\n";
print "<title>Не работает, скотина!</title>\n";
print "</head>\n";
print "<body>\n";
print "<h1 style=\"red\">Че за хрень?!</h1>\n";
print "<p>Ниче не понимаю!(c)Колобки</p>\n";
print "<p><a href=\"/index.html\">Назад на главную страницу</a></p>\n";
print "</body></html>";

Вот вызывающая его ссылка:

Ответить   9A4172 Sat, 24 Apr 2004 17:55:12 +1100 (#132186)

 

On Fri, 23 Apr 2004, 9A4172 wrote:

Кстати говоря, это криво написано ;-)

Если Вы пишите просто 'echo', то специальные символы ('\n') не будут
интерпретироваться. Для того, что бы они все-таки заработали надо
вызывать эхо так 'echo -e'. Тогда и глупо висящие пустые эхи не нужны.

И еще, хотя RFC2616 требует, чтобы строки завершались на '\r\n', это
не очень жесткое условие и большинство соответствущего ПО тоже так
думает и обрабатывает одиночные '\n' нормально. Поэтому достаточно
написать:

echo -e "Content-type: text/html\n\n"

Всего хорошего!
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 6681; Возраст листа: 273; Участников: 1086
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/132040



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sat, 24 Apr 2004 01:58:07 +0400 (MSD) (#132040)

 

i686-pc-none)

Привет, Mike Belopuhov <mkb-mall@l*****.ru> !
Вы писали Sat, 24 Apr 2004 01:58:07 +0400 (MSD):

Большое спасибо! Работает!
Этот пример скрипта я брал из книги, потом изменял его по всякому - не
помогало, искал (и находил) в других книгах и в Интернете - аналогично.
В Perl все работало и без "\r", а вот про опцию "-e" у echo я нигде не
встречал, спасибо.

Ответить   9A4172 Sun, 25 Apr 2004 15:24:37 +1100 (#132267)