Я использую cakephp для запуска мультитенантного приложения. Существует только 1 экземпляр приложения, единственное отличие заключается в базе данных, к которой подключается каждое приложение. Помимо этого, приложение идентично.
Моя настройка:
- Apache 2.2
- Php 5,3
- торт 1.3.10
Сервер Win 2k3
У меня есть приложение, развернутое в документации Apache (только 1 экземпляр
приложение работает). Я недавно перешел из файла в кэш APC.
файловые префиксы для кэширования одинаковы для обоих приложений. Используя Apache
Виртуальные хосты, чтобы решить, какое приложение перейти. Я кеширую статичную
html / js / css / gif, но не php (через mod_expires apache)
Проблема:
Я заметил, что некоторые из кэшированных значений, которые должны были быть доступны для приложения 1, отображались в раскрывающемся списке приложения 2. Я был шокирован, увидев это.
Как добавить изоляцию в слой кэша APC между приложениями?
UPDATE:
Проблема возникает, даже если я создаю новую копию приложения и помещаю ее в свой собственный документ !!!
UPDATE2
Сценарий 1) 1 экземпляр, в котором есть вся пермь / гребень
Если у меня есть php-код вроде
if(client=="client1") {
$options = array(opt1,opt2);
}else if(client=="client2") {
$options = array(opt3,opt4);
}
и этот код совместно используется как клиентом 1, так и клиентом 2, как на это повлияет кэширование APC?
Сценарий 2) 2 экземпляра для каждого клиента
client1.php
$options = array(opt1,opt2);
client2.php
$options = array(opt3,opt4);
как это влияет на кэш APC?
Если я правильно понимаю, для сценария 1 возможно смешивание данных client1 с клиентом 2 (очень плохо)
Для сценария 2, пока я использую разные ключи кеша, я уверен, что никогда не получу путаницу?