В настоящее время X-Ray не имеет возможности собирать статистику на стороне клиента. X-Ray изучает способы поддержки этого варианта использования, но не имеет ETA, когда.
Похоже, что частично опубликованный файл читается и кэшируется как поврежденный. apc.file_update_protection разработан, чтобы помочь остановить это.
в php.ini: apc.file_update_protection integer
apc.file_update_protection
установка задерживает кэширование файлы. По умолчанию это 2 секунды, которые означает, что если модификация отметка времени (mtime) в файле показывает, что ему менее 2 секунд доступ к нему не будет кэшироваться. Несчастный человек, который получил доступ этот наполовину написанный файл все равно увидит странность, но, по крайней мере, это не так сохраняются.
После редактируемого вопроса: одной из причин, по которой я не вижу подобных проблем, является то, что я нажимаю на целую новую копию сайта (с экспортом SVN). Только после того, как это будет полностью завершено, оно станет видимым для Apache / Mod_php (см. Мой ответ Как начать развертывание приложений PHP из хранилища Subversion? )
Конечно, может случиться и другое: что если вы обновляете на месте, вы можете обновлять файлы, которые зависят от других, которые еще не были загружены. Rsync может гарантировать атомарные обновления только для отдельных файлов, а не для всей коллекции, которая изменяется / загружается. Еще одна причина, по которой я думаю загрузить сайт в массовом порядке, и только потом вводить в действие.
Никогда видел это раньше, даже если я огромный пользователь APC. Может быть, попытаться запустить сценарий, который очищает код операции APC при каждой отправке нового кода на сервер?
Когда вы получите файл с ошибкой синтаксического анализа, создайте его резервную копию и повторите печать. Возьмите тот же самый файл, который сейчас работает, и выполните сравнение файла с ошибкой разбора.
Похоже, APC не выполняет предварительную обработку или не получает правильную информацию о состоянии файла. Вы можете проверить это, чтобы убедиться, что конфигурация APC apc.stat установлена правильно. Еще одна вещь, которую вы могли бы сделать - принудительно очистить кеш при помощи apc_clear_cache () при публикации нового кода.
ctime означает время создания. Вам нужно будет вручную очищать весь кэш каждый раз, когда вы делаете обновления.
Вы можете легко сделать это, разместив скрипт apc.php где-нибудь на вашем сервере. Этот скрипт дает вам статистику кеша и позволит вам полностью удалить кеш.
Скрипт поставляется с APC.
Хопет его помогает, Эверт
Вероятно, это происходит из-за несоответствия между вашим кодом и кэшированными версиями кода.
Например, APC имеет кешированную версию User.php, но вы внесли изменения к User.php или к данным, которые использует Пользователь. Кэшированная версия все еще работает даже после развертывания, поскольку ее срок еще не истек.
Если вы очистите записи в кэше APC при развертывании, эта проблема должна исчезнуть.