PHP APC: includepath из предыдущего запроса используется вместо текущего - PullRequest
0 голосов
/ 06 апреля 2011

Почему-то мои классы загружены неправильно.Они либо не загружаются, либо загружается неправильная версия класса (взято из неправильного каталога).

После некоторой отладки стало очевидно, что используемый путь включения на самом деле является путем включения из предыдущего запроса.

Тем не менее, когда я запускаю get_include_path() зарегистрированный результат правильный, но из поведения видно, что на практике он не используется, а вместо этого использовал путь из предыдущего запроса.

Myкод PHP с фреймворком Yii.Фреймворк манипулирует includepath во время выполнения.

Версии PHP: 5.31, xampp, windows7

edit: отключение apc решило проблему

1 Ответ

1 голос
/ 06 апреля 2011

Я вижу это довольно регулярно с APC. Чаще всего, когда БТР заполняется.

Запустите сценарий apc.php (входит в большинство установок APC) в вашем браузере, чтобы проверить свое использование. Ouput выглядит так: apc ouptput

Если APC заполнен, увеличьте объем выделяемой ему памяти. Где-то в вашей конфигурации PHP есть параметр конфигурации, управляющий этим: apc.shm_size=64. Это выделяет 64 мегабарана. Увеличивайте его до тех пор, пока у вас не появится передышка. Чтобы изменения вступили в силу, вам нужно будет перезапустить apache.

Если вы развертываете свое приложение по разному пути на диске каждый раз, вам, вероятно, следует очистить APC - в противном случае старые записи в кэше будут задерживаться. Самый простой способ сделать это - перезапустить ваш веб-сервер. Обратите внимание, что на активном производственном сервере это будет прерывать активные запросы примерно на секунду.

...