КИТА unofficial

Компьютерный => Веб-программирование => Тема начата: vimmax от Январь 08, 2009, 02:35:36



Название: Perl+Apache2
Отправлено: vimmax от Январь 08, 2009, 02:35:36
Есть сайт, написанный на perl.
На старом сервере работал отлично. На новом сервере выдает ошибку.

Т.е. нажимаю на кнопку, ссылка кнопки:

http://www.englerllc.com/is.pl?action=edit&id=12725&path=bin/mozilla&login=29052007&sessionid=1231413734&callback=ar.pl%253faction%253dtransactions%2526direction%253dDESC%2526oldsort%253dtransdate%2526till%253d%2526outstanding%253d%2526path%253dbin%252fmozilla%2526login%253d29052007%2526sessionid%253d1231413734%2526summary%253d1%2526title%253dAR%252520Transactions%2526open%253dY%2526l_transdate%253dY%2526l_invnumber%253dY%2526l_name%253dY%2526l_amount%253dY%2526l_paid%253dY%2526sort%253dtransdate (http://www.englerllc.com/is.pl?action=edit&id=12725&path=bin/mozilla&login=29052007&sessionid=1231413734&callback=ar.pl%253faction%253dtransactions%2526direction%253dDESC%2526oldsort%253dtransdate%2526till%253d%2526outstanding%253d%2526path%253dbin%252fmozilla%2526login%253d29052007%2526sessionid%253d1231413734%2526summary%253d1%2526title%253dAR%252520Transactions%2526open%253dY%2526l_transdate%253dY%2526l_invnumber%253dY%2526l_name%253dY%2526l_amount%253dY%2526l_paid%253dY%2526sort%253dtransdate)

и получаю ошибку 500, лог аппача:
[Thu Jan 08 13:23:36 2009] [error] [client 213.130.22.11] Can't open perl script "ar.pl%3faction%3dtransactions%26direction%3dDESC%26oldsort%3dtransdate%26till%3d%26outstanding%3d%26path%3dbin%2fmozilla%26login%3d29052007%26sessionid%3d1231413734%26summary%3d1%26title%3dAR%2520Transactions%26open%3dY%26l_transdate%3dY%26l_invnumber%3dY%26l_name%3dY%26l_amount%3dY%26l_paid%3dY%26sort%3dtransdate": File name too long, referer: http://www.englerllc.com/is.pl
[Thu Jan 08 13:23:36 2009] [error] [client 213.130.22.11] Premature end of script headers: is.pl, referer: http://www.englerllc.com/is.pl

я подозреваю что ошибка в ссылке кнопки, т.к. первая часть ссылки написана  с использованием символов &?= и т.д.
Вторая часть ссылки почему-то преобразовалась, и вместо символов идут коды: %26d, 253f    и апач на эти коды ругается. Как отменить преобразование ссылки в коды ?
Сайт работал на страом сервере отлично, проблемы только на новом сервере, я думаю в настройках perl или apache.


Название: Re: Perl+Apache2
Отправлено: grimgav от Январь 08, 2009, 02:52:24
Скрипт должен быть исполняемым. "chmod +x *.pl"

Возможно параметры GET запроса вышли за предел. Посмотри тут http://httpd.apache.org/docs/2.0/mod/core.html#limitrequestline

Вторая часть ссылки почему-то преобразовалась, и вместо символов идут коды: %26d, 253f

Это стандарт кодирования и апач на них не ругается.

Проблема также может быть в том, что в папке со скриптами нет разрешения на их запуск "Options +ExecCGI"


Название: Re: Perl+Apache2
Отправлено: vimmax от Январь 08, 2009, 03:19:10
grimgav
права стоят.
вот например кусочек, в ссылке идет:  ar.pl%253faction
в лог файле записывается как:            ar.pl%3faction
а должно быть:                                   ar.pl?action

такое впечатление что ссылка подверглась преобразованиям два раза:
 ?  ->  %3f (это нормально)
%3f -> %253f    (нафига второй раз ???)


Название: Re: Perl+Apache2
Отправлено: vimmax от Январь 12, 2009, 11:06:33
может проблема в CGI::WebOut ?
или HTTP::Request::Common ?
у них есть настройки какие-то ?