我想在共享环境中使用APC,但主要问题当然是操作码共享.
为了解决这个问题,我考虑过为每个用户使用不同的apc.mmap_file_mask(它们是通过PHP-fpm chroot),因此APC创建的“文件”不会被共享,而是对用户来说是个人的.
当然,我注意到我错了几个原因……而最大的一个是关于“apc.mmap_file_mask到底做了什么?”:我认为它就像指向APC使用的内存区域的指针,但我不确定.
当然,我使用的路径中没有文件(/tmp/apc.XXXXXX):机器的/ tmp上没有文件,chrooted环境中没有文件(/ home / vhosts / 0001 / tmp) .
那么,apc.mmap_file_mask到底做了什么?
我的实际配置是:
为了解决这个问题,我考虑过为每个用户使用不同的apc.mmap_file_mask(它们是通过PHP-fpm chroot),因此APC创建的“文件”不会被共享,而是对用户来说是个人的.
当然,我注意到我错了几个原因……而最大的一个是关于“apc.mmap_file_mask到底做了什么?”:我认为它就像指向APC使用的内存区域的指针,但我不确定.
当然,我使用的路径中没有文件(/tmp/apc.XXXXXX):机器的/ tmp上没有文件,chrooted环境中没有文件(/ home / vhosts / 0001 / tmp) .
那么,apc.mmap_file_mask到底做了什么?
我的实际配置是:
apc.mmap_file_mask = /tmp/apc.XXXXXX apc.num_files_hint = 2048 apc.max_file_size = 10M apc.ttl = 7200
我已经检查了PHPinfo()会发生什么,并且它没有转换值:它仍然给我/tmp/apc.XXXXXX(但是apc.PHP表示缓存已被命中,我有更好的时间值…因此它正在工作).
您是否在活动的Web服务器上尝试过APC.PHP?如果您使用SHM而不是MMAP可以解释这一点.文件掩码只允许它根据您的规范将ap文件随机数字保存到特定位置.您甚至可以根据博客文章
http://www.nigeldunn.com/2011/05/02/unable-to-allocate-memory-pool/将其发送到/ dev / zero
原文链接:https://www.f2er.com/php/139073.html以下是各种存储器/文件位置https://stackoverflow.com/questions/904581/shmem-vs-tmpfs-vs-mmap的说明
我并不完全确定我的答案,但您使用SHM似乎是合理的,因此mmap掩码的参数可能不适用.
在加入你的APC.PHP后试试这个
ls /dev/shm