Просмотров: 128834
Дата последнего изменения: 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 доступна кодировка UTF-8. Для корректной поддержки кодировки UTF-8 необходимо проверить, установлен ли в PHP модуль mbstring. Для этого в настройках PHP, в файле php.ini, должно быть:
С версии 20.100.0 Главного модуля необходимо удаление настройки PHP mbstring.func_overload. Эта опция более не требуется и не поддерживается платформой.
Поддержка серверов баз данных
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,
База данных 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С-Битрикс, но и перенести уже готовые проекты.