我刚刚使用PHP处理程序FastCGI安装了APC,但似乎缓存从未起作用。
if(($t=apc_fetch('key_4321'))===FALSE){
$t=time();
apc_add('key_4321', $t, 24*60*60);
}
echo $t;
几乎每次运行它我都会得到不同的时间戳。只有很少几次结果是相同的。可能的原因是什么?
我正在使用PHP版本5.3.21,服务器API是CGI/FastCGI。
Server Software Apache/2.2.23 (Unix) mod_ssl/2.2.23 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_fcgid/2.3.6
以下是我的APC设置。
![enter image description here](https://istack.dev59.com/Ouyi2.webp)
Configuration
apc
APC Support enabled
Version 3.1.13
APC Debugging Disabled
MMAP Support Enabled
MMAP File Mask no value
Locking type File Locks
Serialization Support php
Revision $Revision: 327136 $
Build Date Feb 7 2013 21:44:30
Directive Local Value Master Value
apc.cache_by_default On On
apc.canonicalize On On
apc.coredump_unmap Off Off
apc.enable_cli On On
apc.enabled On On
apc.file_md5 Off Off
apc.file_update_protection 2 2
apc.filters no value no value
apc.gc_ttl 36000 36000
apc.include_once_override On On
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 256M 256M
apc.slam_defense On On
apc.stat On On
apc.stat_ctime Off Off
apc.ttl 36000 36000
apc.use_request_time On On
apc.user_entries_hint 4096 4096
apc.user_ttl 72000 72000
apc.write_lock On On
cgi-fcgi
Directive Local Value Master Value
cgi.check_shebang_line 1 1
cgi.discard_path 0 0
cgi.fix_pathinfo 1 1
cgi.force_redirect 1 1
cgi.nph 0 0
cgi.redirect_status_env no value no value
cgi.rfc2616_headers 0 0
fastcgi.logging 1 1
apc.php
以了解您的缓存守护程序的状态。也许缓存已满并且正在不断修剪? - Halcyonmod_fcgid
不支持APC,因为它不能在子进程之间共享opcode缓存。这就是为什么有些人选择旧的mod_fastcgi
来在apache下使用fastcgi - 它可以利用APC缓存。 - dev-null-dweller