Есть такая проблема: при добавлении на сайт картинки большого разрешения (именно разрешения, а не размера - размер ограничен 200кб) происходит следующее: картинка закачивается на сервер, но ресайзные картинки не создаются (для каждой картинки есть два пресета: 1 - генерация тамбнейла 100х100, 2 - ресайз для отображения в ноде, чтоб не рвала лизайн). При этом никаких ошибок ни в логах сервер, ни в watchdog нету.
Подскажите пожалуйста - может кто-то сталкивался, в чем дело? А, да - на локльной машине все ок с этими же картинками:)
Комментарии
права правильные на поддиректории /files ?
Да, я думаю... ведь с другими разрешениями картинки загружаются, и миниатюры создаются...
для imagecache используется gd или imagemagick? если последнее, то проверь, правильно ли указан к нему путь на сервере.
используется GD... вообще-то ума не приложу в чем дело... а главное на локалхосте повторить не могу... и в логах никаких ошибок
можно попытаться хотя бы вычленить проблему. попробуй добавлять на сайт эти же картинки, но предварительно уменьшенные по разрешению. или в другом формате. или с измененной цветовой палитре, типа, INDEX -> RGB, grayscale -> RGB...
Проблема в том, что это пользователи добавляют картинки. Я конечно уменьшил разрешение тех, что не заресайзились и перезалил, но это же не выход... Интересно, с чем это может быть связано.
Была та же проблема. И в логах, тоже, ошибок не наблюдал. Писал в тех.поддержку хостинга, спрашивая стоит ли ограничение на разрешение обрабатываемых изображений графической библиотекой GD2. Получил ответ, что таких ограничений нет, а есть только ограничение по оперативной памяти. А как раз на обработку больших по разрешению изображений и требуются большие ресурсы. Причём, как сам замечал, в основном на нехватку ресурсов влияет именно разрешение (площадь) картинки, а не её размер.
Решений в этом случае три:
1) Оплачивать более дорогой хостинг, с большим количеством оперативной памяти. Возможно, вы сами можете изменить настройки количества выделяемой вам оперативной памяти вашим хостером (через файл .htaccess или через php.ini). Смотрите инструкции у вашего хостера.
Как рекомендует подсказка в самом Imagecache: для обработки изображения 1600x1200 - необходимо 45M оперативной памяти, а учитывая что модуль в своей памяти может держать одновременно два и больше изображений - то минимально необходимое количество оперативной памяти составляет 96M.
2) Ограничить разрешение загружаемых картинок в настройках модулей, так чтобы такие картинки вообще не загружались на сайт, а пользователю выдавалось сообщение об ошибке. В одном из модулей, как раз видел такие настройки.
3) Если количество загружаемых пользователями картинок невелико и сайт маленький. Можно оставить всё как есть. Вручную чуть подправив код модулей, чтобы вместо обработки больших картинок выводилась спец. картинка - "Изображение в обработке...". А потом, вручную скачивать эти картинки к себе на локальную машину и обрабатывать у себя, закачивая вручную на сайт.
--
Удачи!
4. Уменьшить иаксимальное разрешение картинки. При загрузке картинки с большим разрешением Imagecache сам изменит размеры.
Serge66, если картинка очень большая по разрешению (по площади), а оперативной памяти мало - ничего не произойдёт, картинка просто не будет обработана Imagecache, т.к. не хватит выделенных ресурсов. Об этом и пишет Expier, описывая свою проблему.
Только что проверил на тестовом сайте.
Бесплатный хостинг. Памяти 64 Кб. Файл более 2 Мб. GD2.
Сообщение сайта.
« * The original image was resized to fit within the maximum allowed resolution of 1024 x 768 pixels.
* Изображение ьтитбьб был создан.
»
Наверное всё же, 64 Мб
Я об этом и сказал. Файл может быть размером и 4 Мб. Но нагрузку на библиотеку GD2 даёт не столько размер файла, сколько площадь (разрешение) изображения.
С моим хостингом при тестировании 32 Мб - хватало на обработку !одного изображения площадью 2150x2150. Изображения большЕго разрешения не обрабатывались. При этом значение имела, именно вычисляемая площадь. Ширина и высота изображения могли варьироваться (3080x1500), главное чтобы вычисляемая площадь получалась не больше... А если количество одновременно обрабатываемых изображений увеличивается, то увеличивается и нагрузка от них
Serge66, получается, что на вашем хостинге не будет обрабатываться одно изображение площадью большей чем ~ 4300x4300 (ну а для стабильности эксперимента лучше взять цветное изображение площадью 5000x5000).
Как я понял, у ТС рабочий сайт. А для Друпала хостинг с памятью менее 128 - деньги на ветер. На собственном опыте убедился. Поэтому и привел свой пример.