Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > экспорт perl-сайта на новый сервер


Автор: vimmax 12.1.2009, 10:46
Есть сайт, написанный на perl.
На старом сервере работал отлично. На новом сервере выдает ошибку.

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

http://www.host.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.host.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.host.com/is.pl

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

Автор: gcc 12.1.2009, 18:28
скорее всего скрипта ar.pl нету...

Автор: vimmax 12.1.2009, 18:39
скрипт есть.
весь сайт перенесен без изменений.

Автор: dmitryk1 13.1.2009, 08:26
Цитата(vimmax @ 12.1.2009,  18:39)
скрипт есть.

Это ты думаешь что есть, а перл, в лице файла is.pl думает что нету.

у меня были подобные проблемы. когда я скрипт запускал указывая полный путь к нему, а в скрипте указывал поиск модулей в текущей директории.

когда я перед запуском переходил в нужную директорию, то всё работало.

так что выведи %ENV и погляди какие пути и переменные у тебя обозначены там. права проверь, пользователей нужных, библиотеки, переменные окружения. Перенести сайт - папочку скриптов это почти ничего не сделать, И это всё без учёта настроек апача с его модперлом, про который я пока только слышал. 

Скорее всего придётся допиливать вкрипты, чтобы сайт менее зависел от окружающих настроек. Ну либо настраивать всё как было smile

Автор: nitr 13.1.2009, 10:33
vimmax, в терминале перейдите в папку с этими скриптами, введи ./is.pl, что выдает.
Потом введите perl is.pl, одно и тоже выводит?
Затем введите ls -l is.pl и покажите сюда вывод.

У вас же написано 
Цитата(vimmax @  12.1.2009,  10:46 Найти цитируемый пост)
Premature end of script headers: is.pl, referer: http://www.host.com/is.pl

дословно перевидите ;) . Это бывает, если 
1) нет прав на запуск у скрипта
2) неверный заголовк для CGI формируется
3,4,5 ... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)