нужно ли перезапускать apache + APC после развертывания новой версии приложения? - PullRequest
5 голосов
/ 30 июня 2010

при развертывании нашего приложения мы просто создаем новую папку и указываем на нее символическую ссылку, чтобы apache всегда находил путь к последней сборке.

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

Это нормально, что перезапуск apache требуется при развертывании новой версии нашего php-приложения, когда APC активен? Или есть лучший способ, например очистить кэш APC с помощью сценария оболочки?

Ответы [ 3 ]

8 голосов
/ 30 июня 2010

Можно использовать apc_clear_cache().

См. Связанные вопросы:

Как очистить записи кэша APC?

Какочистить кэш APC без сбоя Apache?

6 голосов
/ 30 июня 2010

зависит от того, включен или выключен параметр apc.stat в php.ini. Если выключено (типично для производственного сайта), вам необходимо очистить кэш кода или перезапустить apache; если включен, то он должен автоматически подобрать новый код

0 голосов
/ 12 августа 2010

Обычно APC 'stat' проверяет каждый файл PHP, чтобы увидеть, был ли он изменен с момента последнего кэширования.Таким образом, перезапуск Apache не требуется для всех обновлений приложения.

НО, если ваше приложение использует apc_store () для хранения данных приложения в кэше и некоторые из этих данных могут измениться после обновления, тогдаперезапуск Apache - это простой способ очистить весь кэш APC.

Я полагаю, что apache2ctl graceful также будет работать.

Кроме того, APC работает немного лучше, если вы отключите «stat».проверка;так что если вы отключите эту функцию, то вы все равно захотите перезапустить Apache.

...