Я использую cakephp для запуска многопользовательского приложения. Существует только 1 экземпляр приложения, единственная разница заключается в базе данных, к которой подключается каждое приложение. В остальном приложение идентично.
Моя установка:
- Апач 2.2
- 5.3
- торт 1.3.10
вин 2к3 сервер
У меня есть приложение, развернутое под docroot apache (работает только 1 экземпляр приложения). Недавно я переключился с файла на кеш APC. Префиксы файлов для кэширования одинаковы для обоих приложений. Использование виртуальных хостов Apache, чтобы решить, к какому приложению перейти. Я кеширую статические html/js/css/gif, но не php (через mod_expires apache)
Проблема:
Я заметил, что некоторые из кэшированных значений, которые должны были быть доступны для ПРИЛОЖЕНИЯ 1, отображались в раскрывающемся списке для Приложения 2. Я был потрясен, увидев, что это произошло.
Как я могу добавить изоляцию на уровне кэша APC между приложениями?
ОБНОВЛЕНИЕ: проблема возникает, даже если я создаю новую копию приложения и помещаю ее в собственный корневой каталог!!!
ОБНОВЛЕНИЕ 2
Сценарий 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 возможно смешивание данных клиента 1 с клиентом 2 (очень плохо). Для сценария 2, если я использую разные ключи кеша, я уверен, что никогда не будет смешивания?