php 代码更改后需要重新启动 Apache

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

这是 Apache 的一个非常普通的 Ubuntu 配置。我只安装了 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

答案1

您没有向我们列出 PHP 模块。您很可能安装了 PHP Accelerator、XCache 或类似的东西,还有前端缓存(例如 Varnish 缓存)或其他您不愿透露给我们的黑魔法。

对于XCache之类的缓存,请参见其手册以了解如何从此处进行操作。

对于 Varnish 等前端缓存,请参阅其手册。

除此之外,很难想象到底是什么在缓存你的东西。

答案2

apc.stat选项已关闭。

apc.stat    Off Off

在这种情况下,APC 永远不会重新读取缓存文件。

文档状态:

如果此设置关闭,APC 将不会检查,这通常意味着要强制 APC 重新检查文件,必须重新启动 Web 服务器或手动清除缓存。

为了避免重新启动 Web 服务器,手动清除缓存通过让 Web 服务器提供仅包含以下内容的 PHP 脚本:

apc_clear_cache();

相关内容