我的装甲运兵车配置有问题。看起来APC会缓存同名、不同目录下的文件,就好像它们是同一个文件一样。
目录结构如下:
src/
development/
edge/
stable/
tag-20101101/
tag-20101115/
...代码驻留在开发、边缘和每个标记目录中。似乎发生的情况是,当APC缓存(例如src/稳定器/foo/bar/quux.php)时,它对src/development/foo/bar/quux.php使用相同的缓存,尽管它们不是同一个文件。有些文件可能使用相对路径包括在内,尽管我还没有确定所包含的文件与APC缓存问题之间是否存在任何连接。
我的APC配置(由apc.php报告)如下:
apc.cache_by_default 1
apc.canonicalize 1
apc.coredump_unmap 0
apc.enable_cli 0
apc.enabled 1
apc.file_md5 0
apc.file_update_protection 2
apc.filters
apc.gc_ttl 3600
apc.include_once_override 0
apc.lazy_classes 0
apc.lazy_functions 0
apc.max_file_size 5M
apc.mmap_file_mask /tmp/apc.tKRzKb
apc.num_files_hint 1000
apc.preload_path
apc.report_autofilter 0
apc.rfc1867 0
apc.rfc1867_freq 0
apc.rfc1867_name APC_UPLOAD_PROGRESS
apc.rfc1867_prefix upload_
apc.rfc1867_ttl 3600
apc.shm_segments 1
apc.shm_size 128
apc.stat 1
apc.stat_ctime 0
apc.ttl 0
apc.use_request_time 1
apc.user_entries_hint 4096
apc.user_ttl 0
apc.write_lock 1我正在使用PHP5.3.2和APC 3.1.3p1与PHP。该服务器是一个具有4GB分配RAM的虚拟RHEL5.4,运行在另一个具有32 GB RAM和12 AMDOpteron2.4 GHz核心的RHEL5.4服务器上。
有人知道是什么原因造成的吗,或者我能做些什么来解决这个问题?
发布于 2011-01-31 20:02:26
根据文档,当没有stat模式时,路径可以被规范化。
http://php.net/manual/en/apc.configuration.php
我的解释是,如果在上面的配置中将apc.stat更改为0,它可能会工作。
//约翰
发布于 2011-01-31 20:37:47
事实证明,问题并不是由于APC,而是因为承载代码的NFS3 NAS被挂载为NFS4。这导致了文件系统缓存的问题。使用装甲运兵车在一定程度上掩盖了实际问题。
不过,谢谢你抽出时间。
https://serverfault.com/questions/202084
复制相似问题