Ошибка WordPress «Internal Zend error» в плагине WP Super Cache

Что-то последнее время сайт начал часто отваливаться с одной и той же ошибкой:

Fatal error: Internal Zend error — Missing class information for in /wp-content/plugins/wp-super-cache/wp-cache-base.php on line 5

При этом сам код не содержит ничего криминального:

4
5
6
7
8
9
10
11
if (!class_exists('CacheMeta')) {
	class CacheMeta {
		var $dynamic = false;
		var $headers = array();
		var $uri = '';
		var $post = 0;
	}
}


Погуглив малость, выяснилось что проблеме сто лет в обед и возникает при работе связки APC/PHP/Zend.
Предупредить возникновении ошибки Internal Zend error в файле wp-cache-base.php можно запретив создание опкода для данного файла. Для этого в php.ini необходимо добавить параметр:

apc.filters = wp-cache-base

или в файл .htaccess в корне вашего сайте дописать

php_value apc.filters wp-cache-base

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

A comma-separated list of POSIX extended regular expressions. If any pattern matches the source filename, the file will not be cached. Note that the filename used for matching is the one passed to include/require, not the absolute path. If the first character of the expression is a + then the expression will be additive in the sense that any files matched by the expression will be cached, and if the first character is a — then anything matched will not be cached. The — case is the default, so it can be left off.

Накропал сей текст вам в помощь Vor’Chun
http://vorchun.ru/kompyutery/web/oshibka-wordpress-internal-zend-error-v-plagine-wp-super-cache/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *