Примечание. APC является устаревшим модулем и на текущий момент не рекомендуется к установке и использованию для PHP версий 5.4 и выше. Вместо него лучше взять xCache 3.0+ или использовать коробочный оптимизатор. Его можно использовать только с 5.3.
APC (Alternative PHP Cache) или Акселератор PHP — это расширение для PHP, основное назначение которого — увеличение производительности интерпретатора при обработке сценариев путем кэширования их байт-кода.
В этой статье мы поговорим, как решить одну из самых популярных ошибок с APC (Alternative PHP Cache) — Unable to allocate memory for pool. Внешне она выглядит следующим образом
Warning: require_once() [function.require-once]: Unable to allocate memory for pool
Смысл в том, что APC сообщает, что у него кончилась память для кеша. На самом деле это не ошибка, а предупреждение. Существует три способа убрать данное предупреждение.
Используйте современный оптимизатор — xCache, либо встроенный в PHP (начиная с версии 5.5). И APC лучше выключить, потому что он устарел несколько лет назад.
Увеличим в php.ini значение apc.shm_size, или обращаемся к хостеру и говорим, что нужно больше памяти.
Плюсы: повышение производительности вашего сайта.
Минусы: расходуется много памяти.
Как показывает практика, с этим нужно быть осторожнее. Есть такая особенность, что при большом shm_size неконтролируемо вырастает ресурсопотребление процесса, после чего php либо «съедает» всю доступную память, либо неконтролируемо падает.
Выключите APC. Допишите в .htaccess php_flag apc.cache_by_default Off
К сожалению, не все хостеры позволяют самостоятельно отключить APC с помощью .htaccess. В таком случае вам необходимо обращаться непосредственно к хостеру.
Минусы: возможно заметное снижение производительности.
Вы можете обратиться на наш специальный форум техподдержки JBZoo. Если у вас нет активного аккаунта со знаком «плюс» в тарифном плане, то вы можете задать свой вопрос в одном из этих разделов или на любой из наших контактов. Форум специально предназначен для JBZoo, приоритет и скорость ответа там выше.