Opcache revalidate freq битрикс как изменить
Перейти к содержимому

Opcache revalidate freq битрикс как изменить

1С-Битрикс: Проблема при установке и рекомендация по настройке

1С-Битрикс: Проблема при установке и рекомендация по настройке - GoldWebIT. Техническая поддержка сайтов 1C Битрикс

При установке CMS «1С-Битрикс» в кодировке UTF-8 на 4-м шаге, при проверке соответствия настроек сервера по требованию CMS, появляются уведомления о несоответствии (выделено красным ):

Эти пункты очень просто решаются:

Версия веб-сервера — игнорируйте уведомление.

opcache.revalidate_freq и mbstring.internal_encoding — зайдите в папку домена, в файл .htaccess и в самом верху добавьте в него код:

mbstring.func_overload — зайдите в панель вашего хостинга, раздел Домены, напротив домена кнопка Настройки. Там вы найдете пункт активировать параметр «php_admin_value mbstring.func_overload 2» (требуется для 1С-Битрикс) — поставьте галочку и сохраните настройки.

Конфигурация PHP — отключение open_basedir, инструкцию по этому параметру можно посмотреть через google_dot_com.

  • Переходим в раздел Планировщик и добавляем команду согласно инструкции создания правил работы скриптов по крону.

На этом все. Параметры будут соответствовать требованию 1С-Битрикс в кодировке utf-8, теперь можно продолжать установку CMS.

Opcache revalidate freq битрикс как изменить

Поведение этих функций зависит от установок в php.ini .

Опции настройки OPcache

Имя По умолчанию Место изменения Список изменений
opcache.enable "1" PHP_INI_ALL
opcache.enable_cli "0" PHP_INI_SYSTEM В версиях с PHP 7.1.2 по 7.1.6 включительно, значение по умолчанию "1" (включено)
opcache.memory_consumption "128" PHP_INI_SYSTEM
opcache.interned_strings_buffer "8" PHP_INI_SYSTEM
opcache.max_accelerated_files "10000" PHP_INI_SYSTEM
opcache.max_wasted_percentage "5" PHP_INI_SYSTEM
opcache.use_cwd "1" PHP_INI_SYSTEM
opcache.validate_timestamps "1" PHP_INI_ALL
opcache.revalidate_freq "2" PHP_INI_ALL
opcache.revalidate_path "0" PHP_INI_ALL
opcache.save_comments "1" PHP_INI_SYSTEM
opcache.fast_shutdown "0" PHP_INI_SYSTEM
opcache.enable_file_override "0" PHP_INI_SYSTEM
opcache.optimization_level "0x7FFEBFFF" PHP_INI_SYSTEM До PHP 7.3.0 было 0x7FFFBFFF
opcache.inherited_hack "1" PHP_INI_SYSTEM Удалено в PHP 7.3.0
opcache.dups_fix "0" PHP_INI_ALL
opcache.blacklist_filename "" PHP_INI_SYSTEM
opcache.max_file_size "0" PHP_INI_SYSTEM
opcache.consistency_checks "0" PHP_INI_ALL
opcache.force_restart_timeout "180" PHP_INI_SYSTEM
opcache.error_log "" PHP_INI_SYSTEM
opcache.log_verbosity_level "1" PHP_INI_SYSTEM
opcache.record_warnings "0" PHP_INI_SYSTEM Доступно, начиная с PHP 8.0.0.
opcache.preferred_memory_model "" PHP_INI_SYSTEM
opcache.protect_memory "0" PHP_INI_SYSTEM
opcache.mmap_base null PHP_INI_SYSTEM
opcache.restrict_api "" PHP_INI_SYSTEM
opcache.file_update_protection "2" PHP_INI_ALL
opcache.huge_code_pages "0" PHP_INI_SYSTEM
opcache.lockfile_path "/tmp" PHP_INI_SYSTEM
opcache.opt_debug_level "0" PHP_INI_SYSTEM Доступно с PHP 7.1.0
opcache.file_cache NULL PHP_INI_SYSTEM
opcache.file_cache_only "0" PHP_INI_SYSTEM
opcache.file_cache_consistency_checks "1" PHP_INI_SYSTEM
opcache.file_cache_fallback "1" PHP_INI_SYSTEM
opcache.validate_permission "0" PHP_INI_SYSTEM Доступно с PHP 7.0.14
opcache.validate_root "0" PHP_INI_SYSTEM Доступно с PHP 7.0.14
opcache.preload "" PHP_INI_SYSTEM Доступно с PHP 7.4.0
opcache.preload_user "" PHP_INI_SYSTEM Доступно с PHP 7.4.0
opcache.cache_id "" PHP_INI_SYSTEM Только в Windows. Доступно с PHP 7.4.0
opcache.jit "tracing" PHP_INI_ALL Доступно с PHP 8.0.0
opcache.jit_buffer_size "0" PHP_INI_SYSTEM Доступно с PHP 8.0.0
opcache.jit_debug "0" PHP_INI_ALL Доступно с PHP 8.0.0
opcache.jit_bisect_limit "0" PHP_INI_ALL Доступно с PHP 8.0.0
opcache.jit_prof_threshold "0.005" PHP_INI_ALL Доступно с PHP 8.0.0
opcache.jit_max_root_traces "1024" PHP_INI_SYSTEM Доступно с PHP 8.0.0
opcache.jit_max_side_traces "128" PHP_INI_SYSTEM Доступно с PHP 8.0.0
opcache.jit_max_exit_counters "8192" PHP_INI_SYSTEM Доступно с PHP 8.0.0
opcache.jit_hot_loop "64" PHP_INI_SYSTEM Доступно с PHP 8.0.0
opcache.jit_hot_func "127" PHP_INI_SYSTEM Доступно с PHP 8.0.0
opcache.jit_hot_return "8" PHP_INI_SYSTEM Доступно с PHP 8.0.0
opcache.jit_hot_side_exit "8" PHP_INI_SYSTEM Доступно с PHP 8.0.0
opcache.jit_blacklist_root_trace "16" PHP_INI_ALL Доступно с PHP 8.0.0
opcache.jit_blacklist_side_trace "8" PHP_INI_ALL Доступно с PHP 8.0.0
opcache.jit_max_loop_unrolls "8" PHP_INI_ALL Доступно с PHP 8.0.0
opcache.jit_max_recursive_calls "2" PHP_INI_ALL Доступно с PHP 8.0.0
opcache.jit_max_recursive_returns "2" PHP_INI_ALL Доступно с PHP 8.0.0
opcache.jit_max_polymorphic_calls "2" PHP_INI_ALL Доступно с PHP 8.0.0

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

Разрешает кеширование опкодов. Если запрещено, код не будет оптимизироваться и кешироваться. Опцию opcache.enable нельзя включить во время исполнения с помощью ini_set() , но можно выключить. Попытка включить её таким образом приведёт к генерации предупреждения.

Разрешает кеширование опкодов для CLI-версии PHP.

Размер разделяемой памяти в мегабайтах для OPcache. Минимально допустимое значение — "8" , которое применяется, если установлено меньшее значение.

Количество памяти в мегабайтах для хранения интернированных строк.

Максимальное количество ключей (и, соответственно, скриптов) в хеш-таблице OPcache. Фактическое используемое значение будет первым числом из набора < 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 >, которое больше или равно заданному в этом параметре. Минимум 200, максимум 1000000. Значения за пределами этого диапазона ограничены до допустимого диапазона.

Максимальное значение потерянной памяти (в процентах) после которого планируется перезапуск, если недостаточно свободной памяти. Максимально допустимое значение: "50" , которое применяется, если установлено большее значение.

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

Если включено, OPcache будет проверять актуальность закешированных скриптов каждые opcache.revalidate_freq секунд. Когда запрещено, вы можете перезапустить OPcache вручную с помощью opcache_reset() , opcache_invalidate() или перезапустив веб-сервер для того, чтобы изменения вступили в силу.

Как часто в секундах проверять временные метки файлов. 0 приведёт к тому, что OPcache будет производить эту проверку при каждом запросе.

Эта директива игнорируется, если выключена opcache.validate_timestamps.

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

Если выключено, все комментарии будут отброшены из кеша опкодов для минимизации размера кода. Отключение этой опции может привести к тому, что некоторые фреймворки, полагающиеся на аннотации в комментариях, перестанут работать, включая Doctrine, Zend Framework 2 и PHPUnit.

Если включено, то будет использована быстрая последовательность перезагрузки, при которой не происходит очистки всех выделенных блоков памяти. Вместо этого для освобождения всего набора переменных используется стандартный менеджер памяти Zend Engine.

Эта директива была удалена в PHP 7.2.0. Вариант быстрой последовательности перезагрузки был интегрирован в PHP и автоматически будет использоваться, если это возможно.

Если включено, то кеш опкодов будет проверять, закеширован ли уже файл при вызове функций file_exists() , is_file() и is_readable() . Это может повысить производительность для приложений, проверяющих присутствие и доступность для чтения скриптом PHP, но несёт риск возврата устаревших данных, если запрещена опция opcache.validate_timestamps.

Битовая маска, контролирующая, какие шаги оптимизации выполняются. По умолчанию применяются все безопасные оптимизации. Изменение значения по умолчанию в основном полезно для отладки/разработки оптимизатора (смотрите также opcache.opt_debug_level).

Эта директива игнорируется.

Этот хак требуется только для обхода ошибок "Cannot redeclare class".

Местоположение чёрного списка OPcache. Файл чёрного списка содержит имена файлов, которые не нужно ускорять, по одной записи на строку. Допустимы шаблоны поиска и префиксы. Строки, начинающиеся с точки с запятой игнорируются

Пример простого чёрного списка:

Максимальный размер файла для кеширования в байтах. Если задать 0 , то кешироваться будут все файлы.

Если не ноль, OPcache будет сверять контрольную сумму кеша каждые N запросов, где N — заданное в этой директиве значение. Рекомендуется включать только при отладке, так как сильно влияет на производительность.

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

Если параметр opcache.log_verbosity_level задать равным 2 или больше, то, при возникновении подобной ситуации, в лог ошибок будет записано предупреждение.

Директива не поддерживается в Windows.

Лог ошибок OPcache. Пустая строка считается как stderr , и ошибки будут выведены в стандартный поток ошибок (в большинстве случаев это лог ошибок веб-сервера).

Уровень подробности лога ошибок. По умолчанию будут записываться только фатальные ошибки (уровень 0) и ошибки (уровень 1). Также значения могут быть следующими: предупреждения (уровень 2), информационные сообщения (уровень 3) и сообщения отладки (уровень 4).

Если включено, OPcache запишет предупреждения во время компиляции и воспроизведёт их при следующем включении, даже если оно выполняется из кеша.

Предпочитаемая модель памяти для OPcache. Если оставить пустым, то OPcache самостоятельно выберет наиболее подходящую модель, которая будет вести себя корректно практически в любых случаях.

Возможные значения включают mmap , shm , posix и win32 .

Защищает разделяемую память от неожиданной записи во время запуска скриптов. Полезно только для внутренней отладки.

Базовое значение для сегмента разделяемой памяти в Windows. Все процессы PHP должны отображать разделяемую память в одинаковое адресное пространство. Данная опция помогает починить ошибки типа "Unable to reattach to base address".

Позволяет вызывать функции API OPcache только скриптам, чей путь начинается с указанной строки. Значение по умолчанию "" означает отсутствие ограничений.

Предотвращает кеширование файлов младше указанного количества секунд. Это помогает предотвратить кеширование не до конца обновлённых файлов. В случае, если у вас все обновления файлов атомарны, можно повысить производительность, задав этот параметр равным "0".

Включает или отключает копирование кода PHP (текстового сегмента) в HUGE PAGES. Это может повысить производительность, но требует соответствующих системных настроек. Доступно в Linux начиная с PHP 7.0.0 и FreeBSD начиная с PHP 7.4.0.

Абсолютный путь к хранилищу общих файлов блокировок (только *nix)

Производит вывод опкодов для отладки разных этапов оптимизации. 0x10000 приведёт к выводу опкодов как только они сгенерированы компилятором, до применения какой-либо оптимизации. 0x20000 приведёт к выводу опкодов после оптимизации.

Разрешает и задаёт директорию кеша второго уровня. Это должно повысить производительность в случае, если память SHM заполнена, сервер перезапущен или SHM сброшена. Значение по умолчанию "" запрещает кеширование на файловой системе.

Включает или выключает кеширование опкодов в разделяемой памяти.

Замечание:

До PHP 8.1.0 отключение этой директивы с уже заполненным файловым кешем требовало ручной очистки файлового кеша.

Включает или выключает проверку контрольной суммы при загрузке скрипта из файлового кеша.

Применяет opcache.file_cache_only=1 для некоторых процессов, которые завершились ошибкой при переподключении к разделяемой памяти (только для Windows). Требуется явно разрешённое кеширование на файловую систему.

Отключение этой опции конфигурации может помешать запуску процессов, и поэтому не рекомендуется.

Проверяет права доступа к кешированному файлу для текущего пользователя.

Предотвращает коллизии имён в chroot-окружении. Должно быть включено для всех случаев использования chroot-окружений для предотвращения доступа к файлам за пределами chroot.

Задаёт скрипт PHP, который будет скомпилирован и запущен при старте сервера и сможет предзагрузить другие файлы, либо с помощью include , либо используя функцию opcache_compile_file() . Все сущности (например функции и классы), определённые в этих файлах, автоматически будут доступны до момента выключения сервера.

Замечание:

Предварительная загрузка не поддерживается в Windows.

Предварительная загрузка кода с правами root запрещена по соображениям безопасности. Эта директива облегчает запуск предварительной загрузки от имени другого пользователя.

Для IIS разные пулы приложений могут иметь собственный экземпляр OPcache, используя переменную среды APP_POOL_ID как opcache.cache_id .

Для обычного использования параметр принимает одно из четырёх строковых значений:

  • disable : Полностью отключён, не может быть включён во время выполнения.
  • off : Отключено, но может быть включено во время выполнения.
  • tracing / on : Используйте трассировку JIT. Включено по умолчанию и рекомендуется для большинства пользователей.
  • function : Используйте функцию JIT.
  • 0 : Отключить оптимизацию для ЦП.
  • 1 : Включите использование AVX, если ЦП поддерживает его.
  • 0 : Не выполнять распределение регистров.
  • 1 : Выполнять выделение локального блочного регистра.
  • 2 : Выполнять выделение глобального регистра.
  • 0 : Компиляция всех функций при загрузке скрипта.
  • 1 : Компиляция функций при первом выполнении.
  • 2 : Профилирование функций при первом запросе и затем компилирование самых популярных функций.
  • 3 : Профилирование на лету и компиляция горячих функций.
  • 4 : В настоящее время не используется.
  • 5 : Использование трассировки JIT. Профилирование на лету и компиляция трассировки для горячих сегментов кода.
  • 0 : Без JIT.
  • 1 : Минимальный JIT (вызов стандартных обработчиков виртуальных машин).
  • 2 : Встроенные обработчики виртуальных машин.
  • 3 : Использовать вывод типа.
  • 4 : Использовать график вызовов.
  • 5 : Оптимизировать весь скрипт.

Объем разделяемой памяти, резервируемый для скомпилированного JIT-кода. Нулевое значение отключает JIT.

Если используется int , значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ. opcache.jit_debug int

Битовая маска, определяющая, какой вывод отладки JIT следует включить. Возможные значения смотрите в zend_jit.h .

Опция отладки, отключающая JIT-компиляцию после компиляции определённого количества функций. Может быть полезно для разделения источника неправильной компиляции JIT. Примечание: этот параметр работает, только если для триггера JIT установлено значение 0 (компиляция при загрузке скрипта) или 1 (компиляция при первом выполнении), например, opcache.jit=1215 . Подробнее смотрите в разделе opcache.jit.

При использовании режима триггера "профилирование функций при первом запросе" этот порог определяет, считается ли функция горячей. Количество вызовов функции, разделённое на количество вызовов всех функций, должно быть выше порогового значения. Например, порог 0,005 означает, что функции, составляющие более 0,5% всех вызовов, будут скомпилированы JIT.

Максимальное количество корневых стеков вызова.

Максимальное количество боковых стеков вызова, которые может иметь корневой стек.

Максимальное количество счётчиков выхода бокового стека вызова. Это ограничивает общее количество боковых стеков, которые могут быть во всех корневых стеках.

Через сколько итераций цикл считается горячим. Допустимый диапазон значений: [0,255] ; для любого значения вне этого диапазона, например, -1 или 256, будет использоваться значение по умолчанию. В частности, нулевое значение отключит JIT для отслеживания и компиляции любых циклов.

Через сколько вызовов функция считается горячей. Допустимый диапазон значений: [0,255] ; для любого значения вне этого диапазона, например, -1 или 256, будет использоваться значение по умолчанию. В частности, нулевое значение отключит JIT для отслеживания и компиляции любых функций.

Через сколько возвратов возврат считается горячим. Допустимый диапазон значений: [0,255] ; для любого значения вне этого диапазона, например, -1 или 256, будет использоваться значение по умолчанию. В частности, нулевое значение отключит JIT для отслеживания и компиляции любых возвратов.

Через сколько выходов боковой стек считается горячим. Допустимый диапазон значений: [0,255] ; для любого значения вне этого диапазона, например, -1 или 256, будет использоваться значение по умолчанию. В частности, нулевое значение отключит JIT для отслеживания и компиляции любых побочных выходов.

Максимальное количество попыток компиляции корневой трассировки, прежде чем она будет занесена в чёрный список.

Максимальное количество попыток компиляции боковой трассировки до того, как она будет занесена в чёрный список.

Максимальное количество попыток развернуть цикл в боковой трассировке, пытаясь достичь корневой трассировки и закрыть внешний цикл.

Максимальное количество развёрнутых рекурсивных циклов вызова.

Максимальное количество развёрнутых рекурсивных циклов возврата.

Максимальное количество попыток встроенных полиморфных (динамических или методических) вызовов. Вызовы выше этого лимита обрабатываются как метаморфические и не встраиваются.

Правильная установка 1с bitrix на хостинг

Всем привет! Мы работаем с различными системами управления и фреймворками уже более 5 лет. Наша команда плотно разрабит на MOD-X, Joomla, WordPress, UMI.CMS. Но сегодня речь пойдет о «Битриксе».

Если вы самостоятельно осваиваете 1С-Битрикс Управление сайтом, то спешу вас обрадовать — это надежная система с большим функционалом «из коробки». Платформа, как и все другие, имеет свои плюсы и минусы. Но вполне стоит потраченного на изучение времени.

Кому и для чего может потребоваться установка системы?

  1. Вы начинающий разработчик;
  2. Вы тестируете хостинг перед покупкой;
  3. Вы подбираете технологическую платформу под проект.

Вам нужно понимать, что правильно установленная на Битриксе система — залог дальшейшей безпроблемной эксплуатации сайта.

Какие есть подводные камни?

На самом деле Битрикс очень прост в установке и все делает сам. Но следует учесть:

  1. Хостинг должен поддерживать определенный список требований;
  2. Должна быть возможность конфигурация веб-сервера, например через .htaccess;
  3. Разные конфиги веб-сервера при установке в CP-1251 и UTF-8;
  4. Возможность быстрой установки (без предварительного скачивания архива).

Внимание: Большинство хостингов не дадут использовать эту CMS без специализированного тарифа (средний ценник в пределах 500-1500/мес). Система начнет создавать повышенную нагрузку на сервер и вам могут заблокировать аккаунт.

Забегая вперед, скажу, что есть и нормальные хостинги, которые таким не балуется. Забегая еще дальше, скажу что оптимальнее сразу установить Битрикс на VDS или VPS в нативном окружении, что даст большую производительность, а по цене будет дешевле виртуального хостинга (примерно 500 руб/мес), но потребует от вас умение деплоить виртуальный сервер.

Способы установки 1С-Битрикс Управление сайтом

На момент написании статья актуальна ветка 17.5 и вот какие пути установки она поддерживает:

  1. Скачать универсальный установщик, который загрузит файлы сам. Ссылка на официальный сайт
  2. Скачать с оф. сайта архив уже выбранной редакции Битрикс (примерно 80 Мб);
  3. На некоторых хостингах предусмотрена быстрая установка CMS. (Будет автоматически запущен универсальный установщик);
  4. Для программистов (немного юмора): качаем на Wget или Curl, заливаем на scp, разархивируем unzip, создаем базу CREATE DATABASE, запускаем установщик.

Первый вариант, как указано на официальном сайте разработчика, требует наличия активного лицензионного ключа.

Наимболее быстрые и простые варианты: 2 и 3. Но следует знать, что третий пункт не даст проверить настройки виртуального хостинга. Скорее всего будет установлена кодировка CP-1251, что в дальнейшем не очень удобно при работе на MacBook и любом OS-X/UNIX.

Порядок установки системы, 5 пунктов

Если вы хотите бесплатно протестировать Битрикс как систему для управления сайтами, воспользуйтесь 10 дневным тестовым хостингом от Timeweb — timeweb. Выбираете тариф «Year+», в левом меню панели управления хостинга нажимаете «Каталог CMS», выбираете 1C-Bitrix и все. Хостинг сам создаст директорию, прилинкует технический домен, скачает и запустит установщик. Минусы такого подхода: сайт установится в кодировке CP-1251. Плюсы: у вас будет 10 дней тестового периода хостинга и месяц для Битрикса. Для продолжения использования вам придется оплатить хостинг.

Небольшой спойлер — сейчас на timeweb можно использовать Битрикс и на самом дешевом тарифе, начиная от Year+ за 119 руб/мес. Если у вас небольшой интернет магазин или сайт визитка, этого вполне хватит. Не забывайте указывать наш код партнера при регистрации хостинга «20923».

Рассмотрим стандартную установку системы:

Наиболее популярные требования Битрикс, не поддерживаемые хостингами

  • Ошибка! Параметр opcache.revalidate_freq = 2, требуется 0
  • Значение max_input_vars должно быть не ниже 10000. Текущее значение: 1000
  • php_value mbstring.func_overload 2 — для поддержки установки в UTF-8
  • php_value mbstring.internal_encoding UTF-8

Если хостинг поддерживает конфигурацию php через .htaccess, нужно лишь дописать новые директивы.

Вот содержимое коробочного .htaccess (для версии 18.5)

Дописываем в блок «IfModule mod_php5.c»:

Внимание! Данную процедуру необходимо выполнять дважды. Первый раз доработать .htaccess перед установкой Битрикса, и еще раз после установки, так как система во время инсталляции перезатрет файл.

Как проверить что сайт установлен корректно?

проверка системы 1С-Битрикс

После установки заходим в административную часть сайта, выбираем «Настройки» — «Проверка системы» и проводим тестирование. По результатам проверки не должно быть ошибок.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *