подключиь метод POST в Apache

zakysj50

после поиска в инете сложилось впечатление, что подключить метод POST можно только с помощью установки модуля mod_perl.
Это так или есть более легкий способ?

skvoria

Нет, мод_перл вообще никакого отношения.
Если ты про ошибку POST is not allowed - это лечится небольшой переконфигурацией апача.
Найди в httpd.conf строчку вида AddHandler cgi-script pl и добавь туда недостающее расширение (например, .cgi).
Также проверь, что скрипт имеет быть право исполненным апачем (часто для этого необходимо задать ему права +х для всех а для скриптовой директории в конфиге апача стоит Options +ExecCGI

zakysj50

AddHandler perl-script .pl .cgi
не помогло
кстати, там уже была вот такая строчка AddHandler cgi-script .pl .cgi
Не знаю это одно и тоже или нет...

skvoria

Дада, я успел поправить
Вообще выложил бы конфиг апача сюда или мне на почту, я сходу не помню названия параметров, но они там всегда были отлично документированы.
Заодно скажи, на каком языке cgi-скрипт и где лежит по отноошению к www-директории.

uncle17

а какая вообще связь между POST и CGI-скриптами?
<Directory />
Options -Indexes
AllowOverride All
Allow from all
<Limit POST>
Order allow,deny
Allow from all
</Limit>
</Directory>
например, так

zakysj50

выкладываю
сменила расширение на zip. на самом деле это .conf

zakysj50

это я пробовала менять, но не помогло. Почему-то кажется, что это немного другое... какие-то разрешения, если метод Post уже подключен...

uncle17

ну тогда смотри права на скрипты, как выше сказано.
И не забудь апач рестартануть

skvoria

У тебя для директории /cgi-bin/ вырублены все опции.
Сделай например
    <Directory "D:/masha/Web/cgi-bin">
     AllowOverride None
     Options All
     Order allow,deny
     Allow from all
    </Directory>
Скрипт, кстати, именно там должен лежать.
Выкинь AddHandler perl-script .cgi .pl - если cgi-script есть, дублировать не надо.
И, да, апач рестартовать

zakysj50

Для разнообразия появилось вот это

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, gznet.ru and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.

uncle17

для разнообразия - а скрипт-то правильно написан?
Чем обрабатывается? CRLF-ы подчищены?
З.Ы. По крайней мере, апач понял, что от него хотят запуска скриптов

zakysj50

я проверяю вот на этом

uncle17

а на чем проверяешь? На винде? Так а как тогда винда поймет, скажем, строчку

$upload_dir = "/home/mywebsite/htdocs/upload";

?

skvoria

Все, скрипты пошли, дальше смотри логи апача, он все про ошибки пишет.
Винде на CR/LF побарабану, а вот шебенг в начале файла должен быть нормально прописан.
Типа, #!C:/perl/perl.exe

zakysj50

исправила на
$upload_dir = "d:/masha/web";
это неправильно?

skvoria

Ты напиши для начала хеллоу-ворлд-скрипт, и добейся того, чтобы он запускался без ошибок.

uncle17

поменяй на обратные слеши
А насчет "винде по барабану"... Когда я лет 6 назад начинал осваивать перл под виндой, активперлу было как раз по барабану, как записан путь к интерпретатору, ибо путь к нему лежал в реестре.
А вот с CR/LF он матерился мощно

zakysj50

вероятно, ошибка где-то в скрипте
#!d:/masha/perl/bin/perl.exe
#!/usr/bin/perl -w
print<<dat
<html>
<head><title>hello</title></head>
<body><h2>hello</h2></body>
</html>
dat
;

вот на такой скрипт Apache пишет в logs:
[Fri May 18 14:36:34 2007] [error] [client 10.3.8.243] malformed header from script. Bad header=<html>: d:/masha/web/cgi-bin/upload.cgi

uncle17

а
print "Content-type: text/html\n\n";
где?

zakysj50

Спасибо всем большое! Все получилось!

Andbar

имхо, именно по этой причине апач чаще всего выадёт 500ю ошибку при обращении к цги-скрипту.

st1956

одинаковые лимит и лимитэксепт это жесть
в общецелом, на пост должон быть лимитэксепт при прочих разных
на скрыпты аллоу в опшинсах, но лучше не в конфе а в папке
плюс вот ты пишешь пост не проходит, проверить в посте ли дело просто, надо гет попробовать(разрешив предварительно само-собой)
если гет не идёт, то смотреть разрешения, они на файлы скриптов должны стоять на исполнение для юзверя апача, о кстати заметил, а это же винда...
ну я не знаю как тогда разрешения ставить...
Оставить комментарий
Имя или ник:
Комментарий: