Перезапуск Apache необходим после изменения кода PHP

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

$ sudo apachectl -l
Compiled in modules:
  core.c
  mod_log_config.c
  mod_logio.c
  itk.c
  http_core.c
  mod_so.c

Это довольно стандартная конфигурация Ubuntu Apache. Я только установил mod_itk и создал несколько vritualhosts.

Есть идеи?

APC Support enabled
Version 3.1.7
APC Debugging   Disabled
MMAP Support    Enabled
MMAP File Mask  no value
Locking type    pthread mutex Locks
Serialization Support   php
Revision    $Revision: 307215 $
Build Date  May 2 2011 19:00:42

Directive   Local Value Master Value
apc.cache_by_default    On  On
apc.canonicalize    On  On
apc.coredump_unmap  Off Off
apc.enable_cli  Off Off
apc.enabled On  On
apc.file_md5    Off Off
apc.file_update_protection  2   2
apc.filters no value    no value
apc.gc_ttl  3600    3600
apc.include_once_override   Off Off
apc.lazy_classes    Off Off
apc.lazy_functions  Off Off
apc.max_file_size   1M  1M
apc.mmap_file_mask  no value    no value
apc.num_files_hint  1000    1000
apc.preload_path    no value    no value
apc.report_autofilter   Off Off
apc.rfc1867 Off Off
apc.rfc1867_freq    0   0
apc.rfc1867_name    APC_UPLOAD_PROGRESS APC_UPLOAD_PROGRESS
apc.rfc1867_prefix  upload_ upload_
apc.rfc1867_ttl 3600    3600
apc.serializer  default default
apc.shm_segments    1   1
apc.shm_size    32M 32M
apc.slam_defense    On  On
apc.stat    Off Off
apc.stat_ctime  Off Off
apc.ttl 0   0
apc.use_request_time    On  On
apc.user_entries_hint   4096    4096
apc.user_ttl    0   0
apc.write_lock  On  On

2 ответа

Решение

Вы не перечислите нам модули PHP. Скорее всего, у вас есть что-то вроде PHP Accelerator, XCache или чего-то подобного, интерфейсный кеш, такой как кеширование Varnish или какая-то другая черная магия, которую вы нам не покажете.

Кэши, такие как XCache, см. В их руководстве, как работать с этим.

Для внешних кэшей, таких как Varnish, см. Их руководство.

Кроме этого, трудно представить, что на самом деле кеширует ваши вещи.

apc.stat опция отключена.

apc.stat    Off Off

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

В документации говорится:

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

Чтобы избежать перезапуска веб-сервера, вручную очистите кэш, предоставив веб-серверу сценарий PHP, содержащий только:

apc_clear_cache();
Другие вопросы по тегам