The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
use Image::Magick;, !*! amber46, 28-Мрт-04, 18:51  [смотреть все]
Приветствую уважаемые...

Возникла проблема 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;, !*! solotony, 18:55 , 30-Мрт-04 (1)
    Честно говоря я лично не понял в чем заключается проблема. Сформулируй получше.
    • use Image::Magick;, !*! amber46, 00:55 , 31-Мрт-04 (2)
      >Честно говоря я лично не понял в чем заключается проблема. Сформулируй получше.
      >

      Проблема и в самом деле не совсем понятная :(
      при наличии вызова use Image::Magick; в скрипте на который делается multipart POST запрос не передаются переменные, если CONTENT_LENGTH запроса превышает примерно 2K.

      то есть в качестве теста например использовался скрипт:
      ===============================================
      #!/usr/bin/perl

      use 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; все отрабатывается нормально и переменные приходят.

      • use Image::Magick;, !*! solotony, 01:33 , 31-Мрт-04 (3)
        а ты попробуй явно задавать, не param, а
        $Test = CGI::param('Test');
        $Picture = CGI::param('picture

        или попробуй

        use CGI qw/:standard/;
        $cgi = new CGI;
        print $cgi->param('abc');

        может и поможет

        • use Image::Magick;, !*! amber46, 03:09 , 31-Мрт-04 (4)
          >а ты попробуй явно задавать, не 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 в принимающем скрипте - всё работает.
          Но в чем проблема была так и не понял.

          • use Image::Magick;, !*! velocity, 10:52 , 08-Фев-05 (5)
            >Но в чем проблема была так и не понял.

            Слушай, те же грабли, только у меня фри 4.10. Я уже запарился искать косяк. Маленький скрипт работаеть нормально, картинку считывает, ресайзит и записывает, а в большом, с большим постом, нет. В 500 ошибку валится.
            Ты так не решил проблему?

            • use Image::Magick;, !*! solotony, 11:19 , 08-Фев-05 (6)
              1) а  что в логах? (если die туда не пишет - сделай вывод die в stdout)
              2) посмотри на объем памяти доступный и требуемый процессу

              >>Но в чем проблема была так и не понял.
              >
              >Слушай, те же грабли, только у меня фри 4.10. Я уже запарился
              >искать косяк. Маленький скрипт работаеть нормально, картинку считывает, ресайзит и записывает,
              >а в большом, с большим постом, нет. В 500 ошибку валится.
              >
              >Ты так не решил проблему?


              • use Image::Magick;, !*! velocity, 06:57 , 11-Фев-05 (7)
                >1) а  что в логах? (если die туда не пишет -
                >сделай вывод die в stdout)

                В логах: Premature end of script headers. Как вывести ошибку не знаю.

                >2) посмотри на объем памяти доступный и требуемый процессу

                При запуске скрипта этот процесс жрет ресурс процессора ~90% и памяти 50-60 мег. Что за хрень это может быть?

                • use Image::Magick;, !*! solotony, 12:03 , 11-Фев-05 (8)
                  >>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

                  проверь какие лимиты у юзера и не превышаются-ли?

                  >мег. Что за хрень это может быть?





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру