但是从我读过的内容(我希望我错了),即使你为每个进程创建一个池,所有池中的所有站点都将共享相同的APC缓存.这让我们回到了与共享Memcached相同的问题:它不安全!
在PHP-fpm的网站上,我读到你可以chroot PHP-fpm池并为每个池定义一个特定的UID和GID …如果是这种情况,那么APC不应该使用这个用户而不能访问其他池缓存吗?
这里的一篇文章(2011年)表明,您需要为每个池运行一个进程,在不同的端口上创建多个启动器,并在每个配置文件中使用一个池创建不同的配置文件:
http://groups.drupal.org/node/198168
这仍然是必要的吗?
如果是这样,运行说出800-PHP进程的影响会是什么?它主要是记忆吗?如果是这样,我怎样才能弄清楚内存的影响呢?
我想最好运行800次PHP-fpm然后让帐户为单个站点创建多个APC缓存?
如果一个帐户平均创建一个50MB的缓存,并为每个帐户创建3个缓存,每个帐户150Mb,这使得120GB …
但是,如果每个帐户平均只使用50Mb,那将会产生40GB
我们的下一台服务器上至少有128GB的ram,如果运行800 x PHP-FPM不会产生超过20GB的开销,那么40GB是可以接受的!
您认为PHP-FPM是如何通过具有相当大内存量的服务器在共享主机上提供安全APC缓存的最佳方式?
或者我应该看另一个系统?
谢谢 !
我已经调查了它,似乎解决问题的唯一方法是使用memcached和apc的修改版本.
我认为目前APC确实允许将数据保存到memcached中,但我发现它没有,所以解决问题的最简单方法是破解memcached,允许它拥有不同的缓存,可能有不同的缓存大小,以及然后破解APC,允许查询memcached从中获取操作码.
Memcached hack也很有用,因为你可以设置缓存的到期时间并评估应该缓存的内容和不应该缓存的内容:这样你可以节省更多ram,并且只在需要时使用它.
要选择要使用的帐户,您将对memcached服务器使用SASL身份验证(已针对memcached开发),从而为此配置提供更多安全性.
Memcached部署对于缓存等其他事情也很有用,所以我将遵循这条路径.