Документация Сотбит: 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-кода в памяти