Я читал о APC, что он ускоряет работу нескольких сайтов php-файлов. Поэтому у меня есть этот конкретный проект на PHP со многими файлами, и я обнаружил, что require_once и синтаксический анализ только определений классов (без их выполнения) занимает больше времени.
Поэтому я установил APC на моем сервере CentOS 5. Я переместил apc.php на свой веб-сервер, и он отображает
Hits: 1 (50.0%) Misses: 1 (50.0%) Cached Files 1 (281.1 KBytes)
И я могу перейти на сайт и изменить подстраницы и т. Д., И apc.php все еще показывает только один кешированный файл?
И в phpinfo () это показывает, что:
Поддержка APC
Я не знаю, что делать. Работает ли APC (например, phpinfo () sais) или нет? Только один кешированный файл не так много после просмотра некоторых страниц на моем сайте.
И еще больше, как диагностировать ошибки и убедиться, что APC работает? Я просматривал
apc.mmap_file_mask /tmp/apc.QnLqNf /tmp/apc.QnLqNf
Directory / tmp, но у меня нет файлов apc там, как указано в phpinfo.
Пожалуйста, помогите мне проверить, работает ли APC, а если нет, что может быть проблемой.
APC может использоваться двумя способами:
(1) является основным преимуществом. Это сокращает время выполнения скрипта, сохраняя результаты кода операции «компиляции» скриптов.
Что касается работы с инструкциями по установке :
Примечание. В Windows APC необходим временный путь для существования и может быть доступен для записи веб-сервером. Он проверяет переменные окружения TMP, TEMP, USERPROFILE в этом порядке и, наконец, пытается установить каталог WINDOWS, если ни один из них не установлен.
Поэтому вам не нужно это (или видеть какую-либо активность) в CentOS.
При этом require / include лучше, чем require_once / include_once / autoload, но это имеет значение только в том случае, если вы делаете это с сотнями файлов.
Является ли ваш сайт в основном одним файлом PHP, который затем включает или требует других файлов? Это может быть зарегистрировано как один файл. Кроме того, насколько я знаю, условная логика include / require может не кэшировать, как ожидалось, хотя это может быть просто слухом!
Вы проверили файлы журнала? посмотрите /var/log/apache2/error.log или, тем не менее, его имя под вашим дистрибутивом.
Кроме того, попробуйте сделать 2-3 php-файла, наведите на них указатель, а затем проверьте, сколько файлов php кэшируется кэшем APC.
Не уверен в APC, но я бы рекомендовал Eaccelerator ( http://eaccelerator.net/ ). Некоторое время назад я проверил его и действительно изменил ситуацию.
APC фактически не использует кеш между процессами. Попробуйте настроить PHP-процесс на fork Childs и позволить основному PHP-процессу работать.
См. Раздел: Как разделить кеш APC между несколькими процессами PHP при работе в FastCGI?
В ветке APC 3.1.5dev была введена новая опция, позволяющая отключить кеш-код операции. По-видимому, он отключен по умолчанию.
Попробуйте добавить это в конфигурационный файл APC:
apc.enable_opcode_cache=1
http://www.litespeedtech.com/support/forum/showthread.php?t=3761
«APC не работает с PHP suEXEC, так как каждый PHP-процесс будет использовать собственную кэш-память, а не общий.
Вы должны попробовать eAccelerator + / dev / shm, если вам нужно использовать PHP suEXEC. "
хорошо получилась такая же проблема, кажется PHP suEXEC + APC проблема