Я поддерживаю большой сайт WordPress и пытаюсь устранить несвязанную проблему, добавляя операторы трассировки в код, которые являются не чем иным, как вызовами error_log(). Вкратце, моя настройка сервера — это файловый сервер, который разделяет корень документа веб-сайта через nfs. Есть 2 веб-сервера, на которых работают nginx+apc+php/fpm. Я редактирую файлы php непосредственно на файловом сервере, и когда я просматриваю файлы с веб-серверов, я вижу свои изменения, однако, когда я просматриваю журнал ошибок, я вижу, что мои изменения не сразу отражаются. Я продолжаю видеть старые операторы трассировки, как будто я вообще не вносил изменений.
Моя действующая теория заключается в том, что код кэшируется либо в apc (дух), либо в кеше nfs на стороне клиента (маловероятно, поскольку я вижу изменения с помощью vi). Я пытаюсь смягчить это, очищая кеш apc с помощью скрипта, который запускает apc_clear_cache(). Кроме того, я перезапустил nginx, а также php-fpm, надеясь, что что-то очистит старый кэшированный php-код. Ни один из этих методов не сработал, и мне приходится ждать до часа или более, прежде чем я увижу изменения своего кода, отраженные в журналах.
Веб-сайт, на котором я устраняю неполадки, имеет довольно высокий трафик, поэтому перемонтирование общего ресурса nfs для меня не вариант. Я предполагаю, что кеш кода операции apc на самом деле не очищается, но я смотрел статистику с помощью apc.php и вижу, что кеш перестраивается после того, как я запускаю свой скрипт сброса. Я занимался этим пару дней, и устранение простой проблемы превратилось в огромную головную боль. Может ли кто-нибудь предложить какие-либо идеи о других вещах, на которые можно обратить внимание, или попытаться сделать изменения в моем коде более немедленными?
<!--newcode-->
Если это обнаруживается при просмотре исходного кода во внешнем интерфейсе, значит, ваш новый код работает, и вы можете исключить APC и nginx. Может ли быть так, что записи в журнал ошибок просто буферизуются, поэтому вы видите, что старые записи появляются при просмотре журнала? - person John Watson   schedule 16.11.2011