首先,我们暂时对文件caching不感兴趣,它的用户caching很重要。
我们需要将有关数据库结构和查询结果的信息存储在caching中,以供我们开发的一些应用程序使用
我们的服务器上有几十个站点,其中一些由客户使用ftp访问控制。
我担心虚拟主机(我们不控制php文件)与另一个虚拟主机的caching搞砸。 我们可以对我们的应用程序进行编码,以使它们的caching键不会发生冲突,但是我们不能忽视客户不会清除或修改caching的值。
我们在plesk的CentOS 5.3服务器上安装mod_php。 我们有apc.cache_by_default=0和apc.filters="-/.*"因为它似乎打破了我们已经安装了很多第三方应用程序。
我已经尝试了php_admin_flag apc.enabled off和php_admin_value apc.enabled 0在虚拟主机,但它似乎没有任何效果。
有没有什么办法可以完全禁用某些网站的apc?
另外,有没有办法让每个虚拟主机有一个单独的用户caching? 或者一个不同的caching解决scheme? 我们正在考虑memcached,但我担心它会有类似的问题。
谢谢。
这种用法要求memcache。 去获取memcache,阅读文档在http://memcached.org 。
APC和mod_php的问题在于mod_php和apache在同一个进程中。 这意味着你只需要为你的所有虚拟主机configuration一个PHPconfiguration。
试着看看PHP的FastCGI接口。 不幸的是我没有太多的经验在apache(我们使用nginx)上进行设置,但是我们已经使用它来分离共享托pipe服务器上不同站点的configuration。 单独的configuration意味着分离一切:您可以为不同的站点启用不同的PHP模块,为不同的站点设置不同的会话存储,为不同的站点设置不同的上传限制等。基本上,归结为一个单独的PHP-FCGI服务器(至less)每个客户。 每个FCGI服务器都有自己的configuration; 我们使用/srv/$domain/fcgi/php.ini ,但是对于你和Plesk都适用。
CGI也可能工作; 我不是100%的APC如何caching。 如果它在内存中,那么CGI将不会帮助,因为它会为每个请求创build一个新进程,这意味着任何内存caching都会在每个请求中丢失。 要清楚的是,即使它工作,也不build议这样做,但build立testing更容易。
正如在这个Linux系统pipe理员博客上所述 :
为特定的vhostconfiguration启用APC或使用.htaccess使用:
php_flag apc.cache_by_default On