при развертывании нашего приложения мы просто создаем новую папку и указываем на нее символическую ссылку, поэтому apache всегда найдет свой путь к последней сборке.
Тем не менее, мы получаем странные ошибки при развертывании и продолжении тестирования без первой перезагрузки сервера apache. У нас также есть APC и есть ощущение, что кеширование имеет какое-то отношение к этому.
Нормально ли, что перезапуск Apache необходим при развертывании новой версии нашего php-приложения, когда APC активен? Или есть лучший способ, например, очистка кэша APC с помощью сценария оболочки?
Вы можете использовать apc_clear_cache()
.
См. Связанные вопросы:
Как очистить записи кэша APC?
Как очистить кеш APC без сбоев Apache?
зависит, есть ли параметр apc.stat в php.ini Вкл. или Выкл. Если выкл. (Типичный для производственного сайта), вам нужно очистить кеш кода или перезапустить apache; если «Вкл», то он должен автоматически получать новый код
Обычно APC будет «статизировать» каждый файл PHP, чтобы узнать, было ли изменено с момента последнего кэширования. Поэтому перезапуск Apache не требуется для всех обновлений приложений.
НО, если ваше приложение использует apc_store () для хранения данных приложения в кеше, и некоторые из этих данных могут измениться после обновления, перезапуск Apache – это простой способ очистить весь кеш APC.
Я считаю, что apache2ctl graceful
будет работать.
Кроме того, APC работает немного лучше, если вы отключите проверку «stat»; поэтому, если вы отключите эту функцию, вы все равно захотите перезапустить Apache.