5  /  219

Документация Сотбит: B2B. Установка решения. Подготовка оборудования (настройка 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 — размер кеша для реальных путей файловой системы.
  • default_charset = UTF-8 — кодировка по умолчанию для PHP-скриптов.
  • memory_limit = 512M — максимальный объем памяти, который может использовать скрипт PHP.
  • 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 = — устанавливает временную зону по умолчанию для PHP.

Необходимые расширения PHP

  • mbstring - Работа с многобайтовыми кодировками (UTF-8, кириллица, эмодзи)

  • xml - Парсинг и генерация XML-документов

  • curl - Выполнение HTTP/HTTPS-запросов к внешним ресурсам

  • gd - Обработка и генерация изображений

  • zip - Работа с ZIP-архивами

  • mysqli - Подключение к базе данных MySQL / MariaDB

  • opcache - Кэширование скомпилированного PHP-кода в памяти