Назад | Перейти на главную страницу

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

Когда я меняю 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 и создал несколько виртуальных хостов.

Любые идеи?

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

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

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

Информацию о интерфейсных кэшах, таких как Varnish, см. В их руководстве.

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

В apc.stat опция выключена.

apc.stat    Off Off

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

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

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

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

apc_clear_cache();