Intereting Posts
Многомерный массив неизвестной глубины в один размерный массив и соответствующие ключи в PHP Когда нужно создать новый ключ приложения в Laravel? PHP-статистика Объект хранится в памяти Параллельные обновления = потеря данных? Проводка многомерного массива с PHP и CURL Должен ли я mysql_real_escape_string ввести пароль в регистрационную форму? Все возможные комбинации в массиве – рекурсия? Получать случайные фразы из массива в PHP? Тема темы WordPress переопределяет родительскую тему: Magento: как загрузить продукт по всем его данным, поскольку он используется в админ CakePHP находит результаты с отсутствующими полями Как получить идентификатор элемента в переменной PHP Гибкие формы и структура базы данных Прикрепить JQuery Autocomplete к текстовому полю, которое загружается вызовом Ajax Проблема с использованием DOTNET с PHP. Контроллер нижнего колонтитула в Laravel

Почему apc_store () возвращает false?

Документация на php.net очень спокоен о причинах сбоев при записи APC. Какие сценарии вызовут вызов apc_store () для отказа?

Существует много свободного места на диске, и сбои являются пятнистыми. Иногда операция магазина будет успешной, и иногда она терпит неудачу.

вне памяти (выделенная память для apc, то есть)

Для php cli его необходимо включить с помощью другой опции: apc.enable_cli = On

В моей ситуации он работал при работе с веб-браузером, но не при выполнении одного и того же файла с помощью php cli.

У меня была такая же ситуация.

Я перенес свой код с помощью Cron Jobs, чтобы использовать Gearman Workers, которые управлялись через supervisord.

Все сломано. Я никогда не мог использовать кэши для работы через APC и должен был вернуться к использованию кэширования файловой базы.

В конце концов я понял, что, когда я использовал задания cron, я загружал каждую страницу через wget, а не в командную строку. Это различие означало, что supervisord, который загружал бы мои скрипты PHP через командную строку, не работал бы, потому что по умолчанию APC не будет работать через командную строку.

Исправить ….

apc.enable_cli=On

этот asinine (и по какой-то причине закрылся) ошибкой была моя проблема:

http://pecl.php.net/bugs/bug.php?id=16814

должен вернуться к версии 3.1.2 apc, чтобы заставить apc работать. не возиться с настройками apc в php.ini помогло (я на mac os 10.5, используя apache 2, php 5.3).

для меня этот тестовый скрипт показал 3 «истины» для 3.1.2 и true / false / true для 3.1.3p1

var_dump (apc_store ('test', 'one')); var_dump (apc_store ('test', 'two')); var_dump (apc_store ('diff', 'thr'));

http://php.net/manual/en/apc.configuration.php

Параметры apc.ttl и apc.user_ttl на php.ini:

Если оставить это на нуле, значит, кеш APC может по-прежнему заполнять устаревшие записи, а новые записи не будут кэшироваться.

Из дискового пространства или разрешения, запрещенного к каталогу хранения?

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

apc_store не удастся, если этот конкретный ключ уже существует, и вы пытаетесь записать его снова до истечения срока действия TTL. Поэтому вы можете почти игнорировать возврат false, потому что он действительно сработал, но кеш все еще существует. Если вы хотите обойти это, начните использовать apc_add. http://php.net/manual/en/function.apc-add.php

В версии, установленной с Ubuntu 10.04 и debian stable, есть ошибка. Если вы замените пакет на эту версию: http://packages.debian.org/sid/php-apc (3.1.7), он работает так, как должен.