Альтернативный кэш PHP (APC) — это бесплатный общедоступный оптимизированный кэш кода для PHP. Он используется для предоставления бесплатной, открытой и надежной среды для кэширования и оптимизации промежуточного кода PHP.
Официальный сайт APC: http://pecl.php.net/package/apc .
Адрес загрузки модуля расширения для Windows : http://www.sitebuddy.com/php/accelerators/apc_windows_binaries_builds.
Для Windows APC. требуется каталог c:tmp, и этот каталог должен быть доступен для записи процессу веб-сервера.
1. Установите
как расширение PHP.
2. Настройте
логический
параметроптимизации
apc.enabledAPC.
Подробное объяснение параметров конфигурации PHP.ini
[APC]
используется для кэширования и оптимизации промежуточного PHP. code
apc.cache_by_default = On
;SYS
; Включить ли буферизацию для всех файлов по умолчанию.
; Если установлено значение «Выкл.» и используется с директивой apc.filters, начинающейся со знака плюс, файлы будут кэшироваться только в том случае, если они соответствуют фильтру.
apc.enable_cli = Off
;SYS
; Включить ли функцию APC для версии CLI, включайте эту команду только в целях тестирования и отладки.
apc.enabled = On
; Включить ли APC Если APC статически скомпилирован в PHP и вы хотите его отключить, это единственный способ.
apc.file_update_protection = 2
;SYS
; При изменении файлов на работающем сервере следует выполнять атомарные операции.
; То есть сначала записать во временный файл, а потом переименовать (mv) файл в окончательное имя.
; Текстовые редакторы и программы, такие как cp и tar, не работают таким образом, что приводит к возможности буферизации неполных файлов.
; Значение по умолчанию 2 означает, что при доступе к файлу, если время модификации меньше 2 секунд от времени доступа, буферизация выполняться не будет.
; Неудачливый посетитель может получить испорченный контент, но кеширование не усугубит этот негативный эффект.
; Если вы можете гарантировать, что все операции обновления являются атомарными, вы можете отключить эту функцию с помощью 0.
; Если ваша система обновляется медленно из-за тяжелых операций ввода-вывода, возможно, вам придется увеличить это значение.
apc.filters =
;SYS
; Список расширенных регулярных выражений POSIX, разделенных запятыми.
; Если имя исходного файла соответствует любому из шаблонов, файл не кэшируется.
; Обратите внимание, что имя файла, используемое для сопоставления, — это имя файла, переданное в include/require, а не абсолютный путь.
; Если первый символ регулярного выражения — «+», это означает, что любой файл, соответствующий этому выражению, будет кэширован.
; Если первый символ — «-», то любые совпадения не будут кэшироваться. «-» является значением по умолчанию и может быть опущено.
apc.ttl = 0
;SYS
; Количество секунд, в течение которых записи кэша могут оставаться в буфере. 0 означает, что тайм-аут никогда не истекает. Рекомендуемое значение: 7200~36000.
; Установка значения 0 означает, что буфер может заполниться старыми записями кэша, предотвращая кэширование новых записей.
apc.user_ttl = 0
;SYS
; Аналогично apc.ttl, но для каждого пользователя рекомендуемое значение — 7200~36000.
; Установка значения 0 означает, что буфер может заполниться старыми записями кэша, предотвращая кэширование новых записей.
apc.gc_ttl = 3600
;SYS
; Сколько секунд запись кэша может существовать в таблице сбора мусора.
; Это значение обеспечивает меру безопасности, поэтому даже в случае сбоя серверного процесса во время выполнения кэшированного исходного файла
и исходный файл был изменен, память, выделенная для старой версии, не будет освобождена до тех пор, пока не будет достигнуто это значение TTL.
; Установите ноль, чтобы отключить эту функцию.
apc.include_once_override = Off
;SYS
; Пожалуйста, оставьте его выключенным, иначе это может привести к неожиданным результатам.
apc.max_file_size = 1M
;SYS
; Отключить кэширование файлов большего размера.
apc.mmap_file_mask =
; SYS
; Если поддержка MMAP была скомпилирована для APC с использованием --enable-mmap (включена по умолчанию),
; значение здесь — это маска файла в стиле mktemp, передаваемая в модуль mmap (рекомендуемое значение — «/tmp»). /апк ХХХХХХ»).
; Эта маска используется для определения того, должна ли отображаемая область памяти быть сохранена в виде файла или общей памяти.
; Для прямого сопоставления памяти с файловой поддержкой установите значение «/tmp/apc.XXXXXX» (ровно 6 X).
; Чтобы использовать shm_open/mmap в стиле POSIX, ему необходимо установить значение «/apc.shm.XXXXXX».
; Вы также можете установить «/dev/zero», чтобы использовать интерфейс ядра «/dev/zero» для анонимно отображаемой памяти.
; Отсутствие определения этой директивы приводит к использованию анонимного сопоставления.
apc.num_files_hint = 1000
; SYS
; Примерное количество различных исходных файлов, которые могут быть включены или запрошены на веб-сервере (рекомендуемое значение: 1024~4096).
; Если вы не уверены, установите значение 0. Этот параметр в основном используется для сайтов с тысячами исходных файлов.
apc.optimization = 0
; Уровень оптимизации (рекомендуемое значение — 0).
; Положительное целое значение включает оптимизатор, при более высоких значениях используется более агрессивная оптимизация.
; Более высокие значения могут иметь очень ограниченное улучшение скорости, но в настоящее время являются экспериментальными.
apc.report_autofilter = Off
;SYS
; Записывать ли все сценарии, которые автоматически не кэшируются из-за причин раннего/позднего связывания.
apc.shm_segments = 1
;SYS
; Количество блоков общей памяти, выделенных для буфера компилятора (рекомендуемое значение — 1).
; Если APC не хватает общей памяти и в директиве apc.shm_size установлено максимальное значение, разрешенное системой,
; вы можете попробовать увеличить это значение.
apc.shm_size = 30
; SYS
; Размер каждого блока общей памяти (рекомендуемое значение — 128–256 МБ).
; Некоторые системы (включая большинство вариантов BSD) имеют очень маленький размер блока общей памяти по умолчанию.
apc.slam_defense = 0
;SYS (Использование этой инструкции запрещено, рекомендуется использовать инструкцию apc.write_lock)
; На очень загруженном сервере, будь то запуск службы или изменение файла,
это может быть вызвано ; несколько процессов одновременно пытаются кэшировать файл. Вызывает состояние гонки.
; Эта директива используется для установки процента, при котором процесс пропускает этап кэширования при обработке некэшированных файлов.
; Например, установка значения 75 означает, что существует 75% вероятность отсутствия кэширования при обнаружении некэшированного файла, что снижает вероятность коллизий.
; Рекомендуется установить значение 0, чтобы отключить эту функцию.
apc.stat = On
;SYS
; Включить ли проверку обновлений скрипта.
; Будьте очень осторожны при изменении значения этой директивы.
; Значение по умолчанию «Вкл.» указывает, что APC проверяет, был ли сценарий обновлен каждый раз,
когда он обновляется, он автоматически перекомпилирует и кэширует скомпилированный контент. Однако это отрицательно влияет на производительность.
; Если установлено значение «Выкл.», проверка не выполняется, что значительно повышает производительность.
; Но чтобы обновленное содержимое вступило в силу, необходимо перезапустить веб-сервер.
; Эта директива также действительна для файлов include/require. Но следует отметить
, что если вы используете относительный путь, APC должна проверять местонахождение файла каждый раз при включении/требовании.
; Использование абсолютных путей может пропустить проверку, поэтому рекомендуется использовать абсолютные пути для операций включения/требования.
apc.user_entries_hint = 100
;SYS
; Аналогично директиве num_files_hint, но для каждого отдельного пользователя.
; Если вы не уверены, установите 0.
apc.write_lock = On
;SYS
; Включить ли блокировку записи.
; На очень загруженном сервере, будь то запуск службы или изменение файла,
; состояние гонки может возникнуть из-за того, что несколько процессов пытаются кэшировать файл одновременно.
; Включите эту директиву, чтобы избежать условий гонки.
apc.rfc1867 = Off
;SYS
; После включения этой директивы для каждого загруженного файла, содержащего поле APC_UPLOAD_PROGRESS непосредственно перед полем файла,
; APC автоматически создаст запись пользовательского кэша для upload_ (то есть значение поля APC_UPLOAD_PROGRESS).
3. Функция
apc_cache_info — извлекает кэшированную информацию (и метаданные) из хранилища данных APC.
apc_clear_cache — очищает кэш APC.
apc_define_constants — определяет набор констант для последующего поиска и массового определения.
apc_delete — удаляет сохраненную переменную из кеша.
apc_fetch — Получить сохраненную переменную из кеша
apc_load_constants — загружает набор констант из кеша.
apc_sma_info — получает информацию о распределении общей памяти APC.
apc_store — кэширование переменной в хранилище данных.
Использование apc относительно просто: имеется всего несколько функций, перечисленных ниже.
apc_cache_info() возвращает информацию о кэше.
apc_clear_cache() очищает содержимое кэша apc.
По умолчанию (без параметров) очищается только системный кеш. Чтобы очистить пользовательский кеш, используйте параметр user.
apc_define_constants (строковый ключ, константы массива [, bool с учетом регистра]) Добавить константы массива в кэш в качестве констант.
apc_load_constants (строковый ключ).
Удалите постоянный кеш.
apc_store (строковый ключ, смешанная переменная [, int ttl]).
Сохранение данных в кеше.
apc_fetch (строковый ключ).
Получите содержимое кэша apc_delete (строковый ключ), сохраненное apc_store
.
Удалите содержимое, сохраненное apc_store.
Управление Apc:
перейдите на pecl.php.net, чтобы загрузить пакет исходного кода apc и там есть apc.php, скопируйте его в место, где ваш веб-сервер сможет получить к нему доступ, и найдите его, чтобы получить к нему доступ.
Функции интерфейса управления:
1. Обновление данных
2. Просмотр статистики хоста
3. Записи системного кэша
4. Записи пользовательского кэша
5. Проверка версии