![APC 在 Apache 上加载正常,但数据未保存](https://linux22.com/image/529071/APC%20%E5%9C%A8%20Apache%20%E4%B8%8A%E5%8A%A0%E8%BD%BD%E6%AD%A3%E5%B8%B8%EF%BC%8C%E4%BD%86%E6%95%B0%E6%8D%AE%E6%9C%AA%E4%BF%9D%E5%AD%98.png)
我安装了 APC 3.1.5 beta,因为 3.0.19 给了我一些奇怪的错误。
3.1.5 安装正常,它出现在 phpinfo 上,并且功能运行正常,没有错误。唯一的问题是数据没有持久保存。
我可以在同一个脚本中执行 apc_store 和 apc_fetch,并且在同一个实例上它将返回存储的数据,但如果我使用两个实例,其中一个存储而另一个获取,则后者将不会返回任何内容,就像密钥不存在一样。
另外使用提供的 apc.php 我得到了以下可能有帮助的信息:
Shared Memory 1 Segment(s) with 32.0 MBytes
(mmap memory, pthread mutex locking)
Uptime 0 minutes
Runtime Settings
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 1M
apc.mmap_file_mask /tmp/apc.rSmNYe
apc.num_files_hint 1024
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 32M
apc.slam_defense 1
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
使用 pecl 在 Apache 2.0.63、PHP 5.3.3、nginx 0.8.46、CentOS 5 64 位上安装
有什么想法吗?谢谢
答案1
使用 APC 你必须使用mod_php或者PHP-FPM否则,每个进程都会创建一个新的 APC 缓存,并且您的请求可能无法从同一个进程得到满足。
你可以通过加载来看到此效果APC的php源码(来自 APC 包的 APC 统计数据)并查看缓存位置在每次请求时如何变化。
对于 APC,我倾向于使用mod_php在 Apache 盒子上和PHP-FPM在 nginx 盒子上。如果有人知道任何其他方法,请告诉我。APC 没有计划修复,因为它在PHP-FPM。