APC не кэширует файлы, но кэширует данные пользователя - PullRequest
5 голосов
/ 01 апреля 2011

Apc не кеширует файлы, он только кеширует пользовательские данные .Когда я тестировал на localhost, APC кэшировал все файлы, которые использовал.Но это не работает на моем общем хостинге.Это проблема конфигурации?

Это статистика из моего apc.php (APC 3.0.19): apc.php stats

На картинке выше APC не использует память.Вот что дает мне phpinfo (): phpinfo() output

На локальном хосте я получаю доступ только к http://localhost/test.php. Apc немедленно кеширует localhost / test.php (type file).но на общем хосте я не вижу его кеш-файл (он может кешировать переменную, если я храню, но не с файлом);

    apc_add('APC TEST', '123');
    echo apc_fetch('APC TEST'); //-- it work with this code

Я хочу Apc кеш test.php, если я получаю доступ к тест.php.

Есть ли у make config, который APC не может кешировать тип файла, или это ограничение общего хостинга?.

Ответы [ 3 ]

25 голосов
/ 05 апреля 2011

В ответ на ваш комментарий «Apc включен, и apc.cache_by_default = 1; настройка php с CGI, я проверил phpinfo ();»: в этом проблема.Если вы запускаете PHP поверх CGI, новый процесс PHP создается при каждой загрузке страницы.Поскольку APC привязан к процессу PHP, он также создается заново при каждом доступе к странице.Так что, очевидно, в нем нет никаких данных.Ваш пример кэша пользователя работает только потому, что вы сохраняете и извлекаете переменную при загрузке одной страницы.

Итак: APC не может работать с PHP через CGI.Используйте FastCGI (который поддерживает процессы в рабочем состоянии, благодаря чему работает кэш и, как правило, быстрее).

0 голосов
/ 05 апреля 2011

APC в режиме CGI на виртуальном хостинге, как правило, не представляется возможным, хотя это возможно. В зависимости от вашего приложения это также может быть угрозой безопасности. Как сказал Никич, вы должны иметь возможность работать с FastCGI, но даже это не так просто, в зависимости от вашего хоста. Вот подробный отчет о ком-то, кто получил это работает. Это может помочь вам попытаться заставить его работать в режиме CGI

FastCGI с кэшем кода операции APC PHP

0 голосов
/ 01 апреля 2011

Если ваш хостинг настроен на php в режиме fastcgi, APC может не работать. Вы можете проверить это на стандартной странице phpinfo ()? редактировать: я стою исправлено, выбранный ответ правильный. Я перепутал CGI / fastcgi. да CGI не будет работать. Но я хочу отметить, что даже fastcgi не так хорош в кешировании кода операции.

...