Apache-2.2
PHP APC 不工作
我剛剛用 PHP Handler 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 設置。
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
FastCGI 和 APC 數據記憶體不能很好地配合使用。FastCGI 使用多個程序,APC 不會跨程序同步其數據記憶體。請參閱APC 的此答案: apc_fetch 經常返回 false ,但有時會返回success 。