Перейти к содержимому


RuWeb.Net

Проблемы с обработкой изображений


  • Вы не можете ответить в тему
No replies to this topic

#1 KoVaLsKy

    Продвинутый пользователь

  • Модераторы
  • 906 Сообщений:
  • ГородИваново

Отправлено 25 декабря 2011 - 12:40

Порой нужно залить в магазин ну столько много картинок что с ума сойти можно. Естественно мы идем в Модуль обработки изображений и нарезаем залитые изображения. НО! если изображений очень много и они много весят, то может вылезти ошибка
Например
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 11980 bytes) in ............/public_html/admin/includes/classes/image_manipulator_GD2.php on line 94

Это значит Хостер ругается. Его стандартные настройки урезают Вам лимит оперативной памяти.

Выходов несколько
1)

1. В .htaccess добавить строку (при условии, что PHP работает под Apache):
php_value memory_limit 32M


В php.ini (при условии, что Вы можете его редактировать) изменить значение параметра memory_limit:memory_limit 32M

2. Добавив в index.php после:<?php
следующий код:
ini_set('memory_limit', '32M');

или
<?php ini_set("memory_limit", "32M"); ?>


Если же такой файл уже есть в корне сайта — просто добавьте в него приведенную выше строку.

Если у хостера PHP работает ка PHP-CGI через suPHP, то это может вызвать ошибку 500, значить использовать директивы php_flag, php_value в файле .htaccess невозможно!

3. Некоторые хостеры поддерживают работу php.ini у клиента, т.е. вы можете самостоятельно делать свои настройки PHP для своей учетной записи.

а значить создайте файл php.ini в корне сайта

и добавте следующий код:

memory_limit = 32M



4. Если это не помогло — обратитесь к администратору хостинга и попросите увеличить количество доступной памяти для PHP.

32М, как Вы догадались-это размер оперативной памяти, которую выделяется для сайта.

как Выбрать размер
я делаю просто Размер ВСЕХ изображений которые вы залили в оригинальные изображения, допустим 100МБ
Сайт генерирует 3 изображения, сделовательно нужно 100 умножить на 3
Ставим 300 МБ и получается примерно так


memory_limit 300M



или

ini_set('memory_limit', '300M');[/color][/color]
[color="#000066"][color="#000066"]


Но помните что не надо наглеть... Если нагрузка на сервер будет большой то хостер может ругаться и, например, прикрыть сайт и заставить Вас сменить тариф.....


Время и место каждого поступка определяется судьбой, но если не придет герой, не будет и поступка.
Sitebuilding





1 человек читают эту тему

0 пользователей, 1 гостей, 0 скрытых пользователей