Хорошо, вот для меня новый.Нечетная проблема с корнем документа CakePHP
Вот ситуация ... У меня есть приложение Cake, работающее в нескольких средах (dev, qa, staging, live), управляемое с помощью GIT.
Я развиваюсь на своей ветке развития и получаю доступ к этой ветке с dev.BLAH.com. DEV подается из /var/www/dev.BLAH.com/app
Иногда, при работе на DEV я начинаю получать ошибки, как это:
Warning (512): Model "Exercise" is not associated with model "ExerciseOutcome" [/var/www/QA.BLAH.com/lib/Cake/Model/Behavior/ContainableBehavior.php, line 344]
ПРИМЕЧАНИЯ: Эту ошибку вызвано тем, что пытается найти ассоциацию , которая еще не построена в среде QA, поэтому речь идет не о недостающей ассоциации, а о НЕПРАВИЛЬНОЙ ПУТЬ.
По какой-то неизвестной причине домен DEV пытается обслуживать файлы из домена QA! Теперь я не думаю, что это связано с какой-то человеческой ошибкой кодирования, потому что простой FIX для нее - это перезапустить Apache!
Теперь я подумал, что это может быть какая-то проблема с сеансом, потому что я храню сеансы в БД, но даже если я очищу все сеансы в БД (без перезапуска apache), он не исправляет это ,
Но если я перезапущу Apache, оставив сеанс таблицы нетронутым, он снова начнет работать снова!
Мне все это кажется таким странным, что я просто не знаю, где еще искать. Я попытался изменить различные уровни кэширования, но это ничего не изменило.
Я не думаю, что я идиот, но я надеюсь, что кто-то может доказать, что я неправ! ;)
Используете ли вы APC для кеширования? У вас есть другой кеш-префикс для каждого экземпляра (т. Е. Другой кеш-префикс для dev, qa, staging и т. Д.)? –
@BenHitchcock, вероятно, прав. У меня была такая же проблема при переключении хостов.Cake настроен для переключения на APC для кэширования по умолчанию, если сервер способен обрабатывать его. Это от http://book.cakephp.org/2.0/en/core-libraries/caching.html- Кэш APCCache APC использует расширение APC PHP. Это расширение использует общую память на веб-сервере для хранения объектов. Это делает его очень быстрым и способным обеспечивать атомарные функции чтения/записи. По умолчанию CakePHP в 2.0-2.2 будет использовать этот механизм кэширования, если он доступен. – JadedCore
Ооо, хороший вопрос! Я об этом не думал. Я попытаюсь отключить его и посмотреть, не изменилось ли это! – Zach