apc.cache_by_default с CodeIgniter - PullRequest
       21

apc.cache_by_default с CodeIgniter

2 голосов
/ 30 апреля 2010

Я пытаюсь использовать APC (альтернативный кэш PHP) на своем локальном хосте с wamp 2, PHP 5.3 и CodeIgniter 1.7.2, однако, если я включу cache_by_default и включу apc.stat, сервер потерпит крах, и я получу ошибка:

[apc-error] Невозможно переопределить класс ci_benchmark в C: \ WAMP \ WWW \ к \ MVC \ CodeIgniter \ common.php по линии 127.

Что я могу сделать, чтобы решить эту проблему?

Ответы [ 3 ]

1 голос
/ 23 января 2011

Когда вы отключаете apc.stat, кажется, что у apc есть проблема с относительными путями. CodeIgniter использует относительный путь в основном файле index.php, поэтому он ломает вещи.

Откройте index.php и измените это:

$system = '../system';

к этому:

$system = '/var/www/system';

Замените '/ var / www /' на полный путь вашего сервера к системной папке CodeIgniter.

1 голос
/ 02 мая 2010

Вы проверили с этим пользователем , чтобы узнать, нашел ли он когда-нибудь лучшее решение, чем не включить cache_by_default?

Это происходит только когда вы включаете apc.cache_by_default И apc.stat? По соображениям производительности вы не хотите запускать apc.stat на рабочем сервере. И вообще нет необходимости запускать кеширование на сервере разработки, кроме как в качестве окончательной проверки перед переходом к работе, когда вы можете вручную очистить кеш.

Является ли ваш рабочий сервер оконной коробкой? Я просто спрашиваю, потому что легко потерять много времени на отслеживание ошибок и проблем конфигурации, возникающих в результате разработки и запуска в разных средах. Если производственная среда существенно отличается от вашей среды разработки, это еще один аргумент в пользу отключения кэширования на вашем устройстве разработки и перехода к более продуктивному использованию вашего времени - разработке вашего приложения.

0 голосов
/ 06 мая 2010

Попробуйте изменить требования в этой функции на include_once. Таким образом, файл будет включен только один раз. В этой функции я имею в виду: system / codeigniter / Common.php: function & load_class ($ class, $ instantiate = TRUE), я думаю, это должно помочь. Я думаю, что APC агрессивно кеширует.

...