我正在使用cakephp运行一个多租户应用程序。该应用程序只有一个实例,唯一的区别是每个应用程序连接的数据库不同。除此之外,该应用程序是相同的。
我的设置:
1. Apache 2.2 2. Php 5.3 3. cake 1.3.10 4. Win 2k3服务器
我已经在apache的docroot下部署了应用程序(只运行一个应用程序实例)。我最近从文件转换到APC缓存。两个应用程序的缓存文件前缀相同。使用Apache虚拟主机来决定要去哪个应用程序。我正在缓存静态html/js/css/gif,但不缓存php(通过apache的mod_expires)。
问题:
我注意到一些应该可用于APP 1的缓存值显示在App 2的下拉列表中。我很震惊看到这种情况发生。
如何在APC缓存层中添加应用程序之间的隔离?
更新: 即使我将应用程序的新副本放在自己的docroot中,问题仍然存在!
更新2:
场景1)具有所有perm/comb的1个实例
如果我有类似以下的php代码:
我的设置:
1. Apache 2.2 2. Php 5.3 3. cake 1.3.10 4. Win 2k3服务器
我已经在apache的docroot下部署了应用程序(只运行一个应用程序实例)。我最近从文件转换到APC缓存。两个应用程序的缓存文件前缀相同。使用Apache虚拟主机来决定要去哪个应用程序。我正在缓存静态html/js/css/gif,但不缓存php(通过apache的mod_expires)。
问题:
我注意到一些应该可用于APP 1的缓存值显示在App 2的下拉列表中。我很震惊看到这种情况发生。
如何在APC缓存层中添加应用程序之间的隔离?
更新: 即使我将应用程序的新副本放在自己的docroot中,问题仍然存在!
更新2:
场景1)具有所有perm/comb的1个实例
如果我有类似以下的php代码:
if(client=="client1") {
$options = array(opt1,opt2);
}else if(client=="client2") {
$options = array(opt3,opt4);
}
同时由客户端1和客户端2共享该代码,APC缓存会如何影响它?
情景2)每个客户端定制的两个实例
client1.php
$options = array(opt1,opt2);
client2.php
$options = array(opt3,opt4);
这对APC缓存有什么影响? 如果我理解正确,对于情景1,可能会导致客户端1的数据与客户端2混合(非常糟糕)。 对于情景2,只要使用不同的缓存键,我就可以确保永远不会出现混淆问题。