Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
APC与PHP5-FPM和Nginx的结合表现异常_Php_Caching_Nginx_Apc - Fatal编程技术网

APC与PHP5-FPM和Nginx的结合表现异常

APC与PHP5-FPM和Nginx的结合表现异常,php,caching,nginx,apc,Php,Caching,Nginx,Apc,我已经让APC在我的Ubuntu13.04服务器上运行了很长一段时间了。几天前,某个地方出了问题,现在它的行为非常奇怪。我来安排一下 APC 3.1.13() PHP 5.4.9() Nginx 1.4.1 我的PHP配置文件位于可用的/etc/php5/mods中。PHP5的所有配置目录(/etc/PHP5/cli/conf.d,/etc/PHP5/fpm/conf.d)都符号链接到/etc/PHP5/conf.d/,而/etc/PHP5/mods则符号链接到可用的。如果我从shell运行

我已经让APC在我的Ubuntu13.04服务器上运行了很长一段时间了。几天前,某个地方出了问题,现在它的行为非常奇怪。我来安排一下

  • APC 3.1.13()
  • PHP 5.4.9()
  • Nginx 1.4.1
我的PHP配置文件位于可用的
/etc/php5/mods中。PHP5的所有配置目录(
/etc/PHP5/cli/conf.d
/etc/PHP5/fpm/conf.d
)都符号链接到
/etc/PHP5/conf.d/
,而
/etc/PHP5/mods则符号链接到可用的
。如果我从shell运行
php-I
,我会返回
/etc/php5/cli/conf.d/*
的配置文件,它应该与任何地方的配置文件完全相同。我的问题的相关部分如下:

apc

APC Support => disabled
Version => 3.1.13
APC Debugging => Disabled
MMAP Support => Enabled
MMAP File Mask => /tmp/apc.XXXXXX
Locking type => pthread mutex Locks
Serialization Support => broken
Revision => $Revision: 327136 $
Build Date => Oct  9 2012 20:29:11

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 => /tmp/apc.XXXXXX => /tmp/apc.XXXXXX
apc.num_files_hint => 512 => 512
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 => 128M => 128M
apc.shm_strings_buffer => 4M => 4M
apc.slam_defense => On => On
apc.stat => On => On
apc.stat_ctime => Off => Off
apc.ttl => 3600 => 3600
apc.use_request_time => On => On
apc.user_entries_hint => 4096 => 4096
apc.user_ttl => 7200 => 7200
apc.write_lock => On => On
这显示选项
apc.enabled
为On。但是,我的phpinfo.php(上面的链接)显示了PHP5-FPM的配置(来自
/etc/PHP5/FPM/conf.d
)将此选项显示为关闭。事实是,命令行版本的php(cli)和在我的Web服务器(fpm)上运行的版本使用完全相同的符号链接配置文件

我的APC似乎正在缓存,但其行为异常。之前,当我清空缓存并重新加载Wordpress服务器上安装的一些页面时,我会看到页面立即被缓存。现在,它在相同的点击次数和未点击次数上停留了几个小时,我可以根据需要刷新,没有任何变化

apc.enabled
选项在
apc.php
上也显示为
0
(关闭),但它似乎至少在做些什么。操作码缓存和用户缓存中都有文件。它的行为很奇怪,我从PHP返回了很多相互矛盾的设置。我在这里不知所措。这里有
20 apc.ini
作为良好的衡量标准:

extension=apc.so
apc.enabled="1"
apc.stat = "1"
apc.max_file_size = "1M"
apc.localcache = "1"
apc.localcache.size = "128"
apc.shm_segments = "1"
apc.ttl = "3600"
apc.user_ttl = "7200"
apc.gc_ttl = "3600"
apc.cache_by_default = "1"
apc.filters = ""
apc.write_lock = "1"
apc.num_files_hint= "512"
apc.user_entries_hint="4096"
apc.shm_size = "128M"
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.include_once_override = "0"
apc.file_update_protection="2"
apc.canonicalize = "1"
apc.report_autofilter="0"
apc.stat_ctime="0"

如果有人需要任何其他配置文件或其中的一部分,我正在关注此线程,请告诉我。

因此,该站点(fpm)似乎正在运行apc。但是页面没有被缓存-你是说PHP文件没有被缓存很长时间,即使你刷新页面?这有点难以解释。通常,当我清空缓存,并访问Wordpress安装中的一些页面时,我会立即看到命中和未命中统计数据上升,它会再次开始缓存所有这些页面。现在,缓存似乎停滞不前,几小时不做任何事情,然后突然数字改变,然后它似乎又几小时不做任何事情。当你看到我的
apc.php
时,似乎正在进行缓存,但是
apc.php
以及
phpinfo.php
告诉我
apc.enabled
关闭了。我只是想到了一些愚蠢的事情,马上检查了它:我的
apc.php
页面没有被缓存。不确定它是否相关,nut我在通过rsync上传文件时注意到apc有点奇怪-我不得不将选项
apc.stat\u ctime=1
添加到apc.ini,然后它似乎工作正常。如果这解决了你的问题,我会做出正确的回答。我会删除mmap_文件掩码和localcache配置选项,然后从那里开始诊断。。。此外,删除任何未设置的或具有可接受默认值的内容,仅在调试期间。。。另外,您可能想看看Opcache和APCu(pecl),它们是解决这些问题的现代、维护的解决方案。。。