Поведение функций зависит от установок в файле php.ini.
Места установки параметров конфигурации».
Краткое разъяснение конфигурационных директив.
opcache.enable
bool
opcache.enable нельзя включить
во время выполнения функцией ini_set(), но можно отключить.
Попытка включить опцию в скрипте выдаст предупреждение.
opcache.enable_cli
bool
opcache.memory_consumption
int
8,
которое кеш опкодов займёт, если установили значение меньше.
opcache.interned_strings_buffer
int
Замечание: До PHP 8.4.0 максимальное значение составляло 4095 мегабайт на всех архитектурах.
opcache.max_accelerated_files
int
{ 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 },
которое больше или равно значению, которое установили для этого параметра.
Минимальное значение составляет 200, а максимальное — 1 000 000.
Значения за пределами этого диапазона ограничиваются допустимым диапазоном.
opcache.max_wasted_percentage
int
50,
которое кеш опкодов займёт, если установили значение больше.
opcache.use_cwd
bool
opcache.validate_timestamps
bool
При включении опции OPcache будет проверять актуальность закешированных скриптов каждые opcache.revalidate_freq секунд. При отключении директивы требуется сбросить OPcache вручную функциями opcache_reset() и opcache_invalidate() или перезапустить веб-сервер, чтобы изменения в файловой системе вступили в силу.
Замечание: OPcache по-прежнему может проверять метку времени файла во время компиляции, если для опций opcache.file_update_protection или opcache.max_file_size установили ненулевые значения.
opcache.revalidate_freq
int
0 OPcache будет проверять обновления
при каждом запросе.
Модуль игнорирует эту директиву конфигурации, если опцию
opcache.validate_timestamps отключили.
opcache.revalidate_path
bool
opcache.save_comments
bool
opcache.fast_shutdown
bool
opcache.enable_file_override
bool
opcache.optimization_level
int
opcache.inherited_hack
bool
opcache.dups_fix
bool
opcache.blacklist_filename
string
; Соответствует конкретному файлу. /var/www/broken.php ; Префикс, который соответствует каждому файлу, который начинается с «x». /var/www/x ; Соответствует подстановочному знаку. /var/www/*-broken.php
opcache.max_file_size
int
0.
opcache.consistency_checks
int
Замечание: Опцию отключили с PHP 8.1.18 и 8.2.5 и удалили в PHP 8.3.0.
opcache.force_restart_timeout
int
opcache.error_log
string
stderr,
и приведёт к отправке логов в стандартный поток ошибок (обычно это лог
ошибок веб-сервера).
opcache.log_verbosity_level
int
opcache.record_warnings
bool
opcache.preferred_memory_model
string
mmap, shm,
posix и win32.
opcache.protect_memory
bool
opcache.mmap_base
string
opcache.restrict_api
string
"" и означает отсутствие ограничений.
opcache.file_update_protection
string
0.
Это разрешит закешировать файлы немедленно.
opcache.huge_code_pages
bool
opcache.lockfile_path
string
opcache.opt_debug_level
string
opcache.file_cache
string
""
отключает кеширование на основе файлов.
opcache.file_cache_only
bool
Замечание: До PHP 8.1.0 отключение этой директивы с уже заполненным файловым кешем требовало ручной очистки файлового кеша.
opcache.file_cache_consistency_checks
bool
opcache.file_cache_fallback
bool
opcache.file_cache_only=1 для конкретного процесса, которому
не удалось повторно подключиться к разделяемой памяти
(только для ОС Windows). Требуется явное включение файлового кеша.
Отключение этой опции конфигурации может помешать запуску процессов, и поэтому не рекомендуется.
opcache.validate_permission
bool
opcache.validate_root
bool
opcache.preload
string
Замечание: Предварительная загрузка не поддерживается ОС Windows.
opcache.preload_user
string
root.
Начиная с PHP 8.3.0, эту директиву не нужно устанавливать, чтобы разрешить предварительную загрузку
при запуске от имени root при использовании CLI SAPI или phpdbg SAPI.
opcache.cache_id
string
В системах Windows процессы, которые запускают один и тот же SAPI-интерфейс PHP под одной и той же учётной записью пользователя с тем же идентификатором кеша, делят между собой один экземпляр OPcache. Значение этой опции разрешается задавать произвольно.
На IIS-серверах пулы приложений поддерживают способность работать с отдельными экземплярами OPcache.
Чтобы разделить кеши, переменную окружения APP_POOL_ID указывают как идентификатор кеша
opcache.cache_id.
opcache.jit
string|int
disable: Деактивирован, нельзя включить во время выполнения.off: Выключен, но разрешается включить во время выполнения.tracing/on: Включить JIT с компиляцией трассировок.
Включён по умолчанию и рекомендуется для большей части пользователей.
function: Включить JIT с компиляцией функций.
В продвинутом режиме параметр принимает 4-значное целое число CRTO, в котором цифры означают:
C (флаги оптимизации для процессора)0: Отключить оптимизацию для ЦП.1: Включить набор инструкций AVX, если поддерживается ЦП.R (распределение регистров)0: Не распределять регистры.1: Выделять локальный блочный регистр.2: Выделять глобальный регистр.T (триггер)0: Компилировать каждую функцию при загрузке скрипта.1: Компилировать функций при первом выполнении.2: Профилировать функции при первом запросе и компилировать самые горячие функции.
3: Профилировать на лету и компилировать горячие функции.4: Не используется.5: Включить JIT с компиляцией трассировок.
Профилировать на лету и компилировать трассировки горячих сегментов кода.
O (уровень оптимизации)0: Без JIT-компилятора.1: Минимальный уровень JIT-компиляции (вызывать стандартные обработчики виртуальной машины).2: Вызывать встроенные обработчики виртуальной машины.3: Разрешить компилятору делать выводы о типах значений.4: Использовать граф вызовов.5: Оптимизировать весь скрипт.tracing соответствует CRTO = 1254,
Режим function соответствует CRTO = 1205.
opcache.jit_buffer_size
int
opcache.jit_debug
int
ZEND_JIT_DEBUG).
opcache.jit_bisect_limit
int
opcache.jit=1215.
Подробнее о значениях рассказывает описание опции opcache.jit.
opcache.jit_prof_threshold
float
opcache.jit_max_root_traces
int
opcache.jit_max_side_traces
int
opcache.jit_max_exit_counters
int
opcache.jit_hot_loop
int
[0,255]; для значений за пределами этого диапазона,
например -1 или 256, будет использоваться значение по умолчанию.
Значение 0 отключит трассировку и компиляцию циклов JIT-компилятором.
opcache.jit_hot_func
int
[0,255]; для значений за пределами этого диапазона,
например -1 или 256, будет использоваться значение по умолчанию.
Значение 0 отключит трассировку и компиляцию функций JIT-компилятором.
opcache.jit_hot_return
int
[0,255]; для значений за пределами этого диапазона,
например -1 или 256, будет использоваться значение по умолчанию.
Значение 0 отключит трассировку и компиляцию возвратов JIT-компилятором.
opcache.jit_hot_side_exit
int
[0,255]; для значений за пределами этого диапазона,
например -1 или 256, будет использоваться значение по умолчанию.
Значение 0 отключит трассировку и компиляцию боковых выходов JIT-компилятором.
opcache.jit_blacklist_root_trace
int
opcache.jit_blacklist_side_trace
int
opcache.jit_max_loop_unrolls
int
opcache.jit_max_recursive_calls
int
opcache.jit_max_recursive_returns
int
opcache.jit_max_polymorphic_calls
int