8  /  265

Требования к серверному программному обеспечению

Просмотров: 128821
Дата последнего изменения: 27.01.2025
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5

Веб-сервер

Продукты 1С-Битрикс работают на серверах:

  • Apache — версия 2.0 и выше,
  • Nginx — последняя стабильная версия.

Компания 1С-Битрикс проводила тестирование только на указанных серверах. Теоретически продукты могут работать на любом веб-сервере, поддерживающем PHP, но гарантии работы на таких серверах отсутствуют.

UTF-8

Продукты 1С-Битрикс с версии 24.0.0 поставляются только в кодировке UTF-8. Поэтому все серверные компоненты и базы данных должны быть настроены на работу в UTF-8. Это обеспечивает корректное отображение и обработку данных. Поддержка кодировки windows-1251 полностью прекращена.

PHP

Для работы продукта требуется PHP версии 8.1.0 С 01.03.2024 и выше. Рекомендуемая версия — 8.2 и выше. Выбор зависит от требований хостинга или установленной версии на вашем компьютере.

Используйте последнюю стабильную версию PHP, чтобы повысить безопасность и избежать ошибок.

Для корректной работы продуктов 1С-Битрикс необходимы расширения PHP.

  • GD — библиотека для работы с изображениями, графиками, диаграммами, CAPTCHA.
  • PHP XML — используется для работы системы обновлений. Библиотека по умолчанию включена в стандартной установке PHP. Для версии под Windows — поддержка встроенная.
  • FreeType — библиотека для корректной работы CAPTCHA.
  • Поддержка регулярных выражений: POSIX и Perl-compatible — необходима для корректной работы внутренних механизмов продукта.
  • Zlib compression — библиотека компрессии, используется при работе системы обновлений для уменьшения количества передаваемых данных от сервера к клиенту.
  • PHP OpenSSL — библиотека используется для шифрования и распаковки зашифрованных данных.
  • Hash — поддержка хеш-функций для безопасности данных.
  • Multibyte String — расширение для работы с многобайтовыми строками, необходимо для корректной обработки текстов.
  • DOM и ZIP — функции работы с DOMDocument и архивами ZipArchive. Необходимы для работы модуля Генератор документов.
  • MySQL — функции для работы с базой данных MySQL, если она используется.
  • PostgreSQL — функции для работы с базой данных PostgreSQL, если используется PostgreSQL.
  • AMQP — библиотека для работы модуля Сервер конвертации файлов.
  • SSL — расширение для поддержки SSL/TLS, обеспечивает безопасное соединение и передачу данных.
  • LDAP — расширение для работы с протоколом LDAP, используется для модуля AD/LDAP интеграция.
До версии 20.100.0 Главного модуля

Поддержка серверов баз данных

MySQL

Версия MySQL — 8.0 и выше. Для работы с СУБД требуется поддержка MySQL для PHP.

Для Linux-систем: РЕД ОС, ALT, Astra и других рекомендуется использовать MariaDB вместо MySQL.

В MySQL и MariaDB важно использовать кодировку utf8mb4, а не utf8mb3. Кодировка utf8mb4 поддерживает полный набор символов Unicode, включая эмодзи и другие символы, которые не поддерживаются в utf8mb3.

Для разных версий СУБД используйте следующие настройки кодировки и сортировки:

  • MySQL 8.x и MySQL 9.x: кодировка — utf8mb4, сортировка — utf8mb4_0900_ai_ci,
  • MariaDB 10.x и MariaDB 11.x: кодировка — utf8mb4, сортировка — utf8mb4_unicode_ci.

PostgreSQL

База данных PostgreSQL доступна только для лицензии Энтерпрайз. Установщик PostgreSQL может работать с версии 11, но рекомендуем устанавливать актуальную версию. Каждая версия PostgreSQL поддерживается в течение 5 лет, после чего поддержка прекращается. Ознакомьтесь с таблицей поддержки версий на сайте PostgreSQL.

Для работы с СУБД требуется установленная поддержка PostgreSQL для PHP.

Настройки PHP

Для корректной работы продукта настройте параметры PHP.

Важные константы

  • max_input_vars = 10000 — максимальное количество входных переменных, которые могут быть обработаны одним запросом.
  • max_file_uploads = 100 — максимальное количество файлов, которые могут быть загружены одновременно.
  • max_execution_time = 300 — максимальное время выполнения скрипта в секундах.
  • post_max_size = 1024M — максимальный размер данных, которые могут быть отправлены методом POST.
  • pcre.backtrack_limit = 1000000 — максимальное количество обратных шагов для регулярных выражений.
  • pcre.recursion_limit = 14000 — максимальная глубина рекурсии для регулярных выражений.
  • realpath_cache_size = 4096k — размер кеша для реальных путей файловой системы.

Поддержка UTF-8

  • default_charset = UTF-8 — кодировка по умолчанию для PHP-скриптов.

Объем памяти для PHP

  • memory_limit = 256M — максимальный объем памяти, который может использовать скрипт PHP.

Параметр memory_limit может быть изменен:
  • непосредственно в файле php.ini,
  • из скрипта с помощью функции ini_set("memory_limit", "256M"),
  • в файле .htaccess с помощью директивы php_value memory_limit 256M,
  • в httpd.conf с помощью php_admin_value memory_limit 256M.

Установка параметров PHP из .htaccess возможна только при выполнении следующих условий:
  • используется веб-сервер Apache или совместимый с ним,
  • в настройках веб-сервера httpd.conf установлена директива AllowOverride All или задано другое значение, отличное от None,
  • PHP установлен как модуль Apache.

Загрузка файлов

  • file_uploads = On — включает загрузку файлов на сервер. Дополнительно к параметру устанавливаются значения:
    • upload_tmp_dir = "/tmp/php_upload/www" — каталог должен существовать. На него должны быть права на запись для пользователя, под которым работает веб-сервер. Параметр upload_tmp_dir может быть закомментирован в php.ini по умолчанию,
    • upload_max_filesize = 1024M — максимальный размер загружаемого файла.

Заголовки безопасности

  • mail.add_x_header = Off — отключает добавление заголовка X-PHP-Originating-Script в отправляемые письма, что повышает безопасность.
  • expose_php = Off — отключает отправку заголовка X-Powered-By, который указывает версию PHP.

Настройка PHP-сессий

Сессии могут храниться в одном из четырех хранилищ: файлы, Redis, Memcached или в БД. Выбор хранилища зависит от требований вашего проекта.

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

  • session.save_path = "/tmp/php_sessions/www" — устанавливает путь для сохранения файлов сессий. Если параметр не настроен в файле php.ini, то по умолчанию будет использовано значение /tmp.
  • session.cookie_httponly = On — устанавливает флаг HttpOnly для cookie сессии, предотвращая доступ к ним через JavaScript.
  • session.cookie_samesite = "Lax" — устанавливает политику SameSite для cookie-сессии, что помогает защититься от атак типа Cross-Site Request Forgery.

Настройка обработки ошибок

  • display_errors = Off — отключает отображение ошибок на экране.
  • error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING — устанавливает уровень отчетности об ошибках, исключая уведомления и предупреждения.

Дополнительные параметры PHP

  • enable_dl = Off — отключает функцию dl(), которая позволяет загружать PHP-расширения во время выполнения. Это предотвращает загрузку несанкционированных модулей.
  • short_open_tag = On — включает использование коротких открывающих тегов <? для PHP, что может быть полезно для старых скриптов.
  • allow_url_fopen = On — разрешает открытие URL-адресов как файлов, что необходимо для некоторых функций, но может представлять риск безопасности.
  • sendmail_path = msmtp -t -i — указывает путь к программе отправки почты.
  • date.timezone = Europe/Kaliningrad — устанавливает временную зону по умолчанию для PHP.

Выбор ОС

Компания 1С-Битрикс рекомендует устанавливать продукты на Виртуальную машину BitrixVM или использовать веб-окружение BitrixEnv. Подробнее о них можно узнать в специальном курсе Виртуальная машина BitrixVM.

  • Запуск виртуальной машины BitrixVM — «1C-Битрикс: Виртуальная машина» сконфигурирована для быстрого исполнения продуктов 1С-Битрикс. На виртуальную машину можно не только установить ознакомительные версии продуктов 1С-Битрикс, но и перенести уже готовые проекты.
  • Установка «1С-Битрикс: Веб-окружение» — Linux (BitrixEnv) — позволяет быстро развернуть оптимальное окружение для работы продуктов и решений 1С-Битрикс на Linux-платформе CentOS Stream 9.

    С версии BitrixEnv 9.0.4 добавлена поддержка операционных систем Rocky Linux 9, Alma Linux 9, Oracle Linux 9.

Настройки окружения при использовании других ОС описаны в главе Установка БУС/КП на другие окружения:


161
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии
Как вам документация и курсы Битрикс24? Ответьте на 5 коротких вопросов — помогите писать для вас полезнее.
Оставить отзыв