Skip to content

Ошибка "Allowed memory size of SOME_NUMBER bytes exhausted (tried to allocate 64 bytes)" на сайтах с Jooomla c $cache_handler не равным files

Ошибка "Allowed memory size of SOME_NUMBER bytes exhausted (tried to allocate 64 bytes)" на сайтах с Jooomla c $cache_handler не равным files

Видим ошибку вида

PHP Fatal error:  Allowed memory size of 549453824 bytes exhausted (tried to allocate 64 bytes) in /var/www/some_user/data/www/site.domain/libraries/joomla/error/exception.php on line 117

ошибка возникает при вызове

$this->backtrace = debug_backtrace();

в configuration.php при этом видим что-то вроде

var $cache_handler = 'memcache';
var $memcache_settings = array("persistent" => "0", "compression" => "0", "servers" => array("0" => array("host" => "127.0.0.1", "port" => "11211")));

или

var $caching = '2';
var $cache_handler = 'memcache';
var $memcached_server_host = '127.0.0.1';
var $memcached_server_port = '11211';

Проверяем, есть ли на тачке memcache

ss -lnpt 'src :11211'
State      Recv-Q Send-Q                                                Local Address:Port                                                               Peer Address:Port              
Cannot open netlink socket: Protocol not supported
LISTEN     0      0                                                         127.0.0.1:11211                                                                         *:*                   users:(("memcached",pid=30642,fd=26))

Если есть, значит нужно установить php-модуль memcache, и включить его в настройках. Если такого сервиса на сервере нет, делаем

public $caching = '0';
public $cache_handler = 'file';

вместо значений, указанных выше. Проблема перестаёт проявляться.

Также важно обратить внимание на знаения

var $list_limit = '20';
var $session_handler = 'database';

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