О себе События Портфолио Статьи Гостевая Фотоальбом На злобу дня Ссылки Учеба Программы
Alex_K (г.Киров) - Алексей Кощеев
Хостинг и регистрация доменов в Кирове

На злобу дня

Invalid opcode 153/1/8 или учим eAccelerator дружить...

Если ваш сайт работает на версии PHP 5.3+ и использует анонимные функции, то выполнение скрипта может быть остановлено с ошибкой:

PHP Fatal error: Invalid opcode 153/1/8. in /....

Ошибка возникает в следствие того, что eAccelerator (расширение для ускорения работы PHP-кода), не совместим с анонимными функциями. Несовместимость появляется на стадии оптимизации опкода.

Для устранения ошибки мне известны два решения.

1. Установить параметр PHP eaccelerator.optimizer в значение 0

Например, если у вас PHP подключен в качестве модуля веб-сервера Apache (mod_php) добавьте в файл .htaccess в корне сайта строку вида:

php_value eaccelerator.optimizer 0

Затем обновите файл, который упоминается в тексте ошибки (нужно, чтобы обновилась дата изменения файла на сервере) или удалите файловый кеш.

На скорость работы большинства сайтов это решение почти не повлияет, т.к. eAccelerator будет по-прежнему выполнять свою основную функцию - кешировать опкод PHP.

2. Пересобрать eAccelerator, используя специальный патч

Патч patch-optimize.c отключает стадию оптимизации опкода для PHP-скриптов, содержащих анонимные функции.

После этого нужно удалить файловый кеш.

На момент написания этой заметки прошло уже почти 6 месяцев с того момента, как на хостинге ihead.ru eAccelerator собран именно с этим патчем: все работает, как положено :)

Опубликовано: 05 января 2014 года.

Далее: О разнице между reboot и shutdown -r now
Предыдущая заметка: Обходим проблему с USB/XHCI в FreeBSD 9.2
Перейти к списку заметок
Fanshop.ru

Рейтинг@Mail.ru

Rambler's Top100

© Алексей Кощеев, г.Киров, 2001-2024 хостинг предоставлен компанией Айхэд