Приветствую уважаемые...Возникла проблема c subj при переносе сайта на другой сервер.
Старый:
FreeBSD 4.7
apache+mod_ssl-1.3.29+2.8.16
ImageMagick-nox11-5.5.7.16
----------
модуль subj работал.
переехали на:
FreeBSD 5.2.1
apache+mod_ssl-1.3.29+2.8.16_1
ImageMagick-nox11-5.5.7.16
----------
престали проходить POST запросы при CONTENT_LENGH больше 2K при условии что в скрипте ХОТЯ БЫ иницииализируется subj.
как только убираю subj все работает - и проходят нормальные POST запрос.
ПОМОГИТЕ - очень не хочется переписывать весь сайт...
Честно говоря я лично не понял в чем заключается проблема. Сформулируй получше.
>Честно говоря я лично не понял в чем заключается проблема. Сформулируй получше.
>Проблема и в самом деле не совсем понятная :(
при наличии вызова use Image::Magick; в скрипте на который делается multipart POST запрос не передаются переменные, если CONTENT_LENGTH запроса превышает примерно 2K.то есть в качестве теста например использовался скрипт:
===============================================
#!/usr/bin/perluse Image::Magick;
use CGI qw/:standard/;$Test = param('Test');
$Picture = param('picture');print "Content-type: text/html\n\n";
print "Test=". $Test ."<br>Picture=". $Picture ."<br><hr><br>\n";
================================================
как только я ставлю ремарку на #use Image::Magick; все отрабатывается нормально и переменные приходят.
а ты попробуй явно задавать, не param, а
$Test = CGI::param('Test');
$Picture = CGI::param('pictureили попробуй
use CGI qw/:standard/;
$cgi = new CGI;
print $cgi->param('abc');может и поможет
>а ты попробуй явно задавать, не param, а
>$Test = CGI::param('Test');
>$Picture = CGI::param('picture
>или попробуй
>use CGI qw/:standard/;
>$cgi = new CGI;
>print $cgi->param('abc');
>может и поможетпробовал: $cgi->param('Test') и $cgi->param('picture') получаются пустые если общее CONTENT_LENGTH > 2K.
проблема IMHO где то в иницииализации Image::Magick.
при этом функции Image::Magick рабочие - проверил. то есть написал маленький скриптик которые в частности ресайзит картинку.
Пока что решил проблему след. образом: выделил функцию обработки картинки в отдельный скрипт и вызываю его из скрипта получающего картинки с помощью system() - то есть убрал иницииализацию Image::Magick в принимающем скрипте - всё работает.
Но в чем проблема была так и не понял.
>Но в чем проблема была так и не понял.Слушай, те же грабли, только у меня фри 4.10. Я уже запарился искать косяк. Маленький скрипт работаеть нормально, картинку считывает, ресайзит и записывает, а в большом, с большим постом, нет. В 500 ошибку валится.
Ты так не решил проблему?
1) а что в логах? (если die туда не пишет - сделай вывод die в stdout)
2) посмотри на объем памяти доступный и требуемый процессу>>Но в чем проблема была так и не понял.
>
>Слушай, те же грабли, только у меня фри 4.10. Я уже запарился
>искать косяк. Маленький скрипт работаеть нормально, картинку считывает, ресайзит и записывает,
>а в большом, с большим постом, нет. В 500 ошибку валится.
>
>Ты так не решил проблему?
>1) а что в логах? (если die туда не пишет -
>сделай вывод die в stdout)В логах: Premature end of script headers. Как вывести ошибку не знаю.
>2) посмотри на объем памяти доступный и требуемый процессу
При запуске скрипта этот процесс жрет ресурс процессора ~90% и памяти 50-60 мег. Что за хрень это может быть?
>>1) а что в логах? (если die туда не пишет -
>>сделай вывод die в stdout)
>
>В логах: Premature end of script headers. Как вывести ошибку не знаю.установи handler для die, (также как обработчик сигнала, но __DIE__ )
вывод направь на STDOUT предварительно напечатав заголовок. лучше в BEGIN
модуля, загружаемого первым.$SIG{__DIE__} = \&DIE_handler;
sub DIE_handler {
textheader(); # печатает заголовок
my ($signal) = @_;
print("DIE: $signal\n");
exit;
}
>
>>2) посмотри на объем памяти доступный и требуемый процессу
>
>При запуске скрипта этот процесс жрет ресурс процессора ~90% и памяти 50-60проверь какие лимиты у юзера и не превышаются-ли?
>мег. Что за хрень это может быть?