Смена PHP версии и изменение настроек
Для смены версии PHP перейдите в панель управления Plesk. Выберите сайт, для которого вы хотите изменить версию PHP и нажмите на раздел «PHP»
Чтобы изменить версию PHP, откройте выпадающее меню и выберите нужную версию. Вы также можете настроить отдельные параметры. Давайте разберем, за что отвечает каждая настройка:
`memory_limit` определяет максимальный объем памяти, который может использовать один процесс PHP при выполнении скрипта. Если скрипт пытается использовать больше памяти, чем указано в этой настройке, он будет прерван, и PHP выдаст ошибку. Это позволяет контролировать потребление памяти скриптами и предотвращать ситуации, когда скрипты используют слишком много ресурсов, что может привести к перегрузке сервера или снижению производительности.
`max_execution_time` определяет максимальное время, в секундах, которое PHP-скрипт может выполняться до его завершения. Если скрипт превышает это временное ограничение, PHP прекращает его выполнение и выдает ошибку. Эта настройка помогает предотвратить бесконечное выполнение скриптов, обеспечивая, что ресурсы сервера не затягиваются долгими процессами.
`max_input_time` определяет максимальное время, в секундах, в течение которого PHP должен принимать ввод от клиента, такого как данные формы POST или загрузка файлов. Если ввод не завершен в течение этого времени, PHP завершает выполнение скрипта и выдает ошибку. Эта настройка помогает предотвратить блокирование скриптов из-за длительного ожидания ввода от клиента.
`post_max_size` определяет максимальный размер данных, которые могут быть отправлены через метод POST в PHP. Это включает в себя данные формы, загружаемые файлы и другие данные, отправленные через POST-запрос. Если размер отправленных данных превышает установленное значение `post_max_size`, PHP будет обрезать данные, а также может выдать ошибку. Эта настройка помогает предотвратить отправку слишком больших запросов, которые могут привести к перегрузке сервера.
`upload_max_filesize` определяет максимальный размер файла, который может быть загружен на сервер через PHP. Если размер загружаемого файла превышает значение, установленное в `upload_max_filesize`, PHP прерывает загрузку и может выдать ошибку. Эта настройка помогает контролировать размеры загружаемых файлов и предотвращает загрузку слишком больших файлов, что может негативно повлиять на производительность сервера.
`opcache.enable` определяет, включен ли OPCache, модуль оптимизации и кэширования кода PHP, который ускоряет выполнение PHP-скриптов. Когда `opcache.enable` установлен в значение "1" (включено), OPCache активируется, и PHP-скрипты будут кэшироваться для повторного использования, что улучшает производительность. Если значение установлено в "0" (выключено), OPCache будет отключен, и PHP-скрипты не будут кэшироваться. Обычно OPCache включен в продакшен среде для улучшения производительности PHP.
`disable_functions` определяет список функций PHP, которые будут запрещены для использования в скриптах. Когда функция указана в этом списке, она будет недоступна для вызова из PHP-скриптов на сервере. Это позволяет администраторам сервера ограничить опасные или нежелательные функции, чтобы повысить безопасность и предотвратить злоупотребления. Например, функции `exec()` или `system()` могут быть запрещены для предотвращения выполнения вредоносных команд на сервере.
`include_path` определяет список директорий, в которых PHP будет искать файлы для подключения с помощью инструкций `include` и `require`. Если файл не может быть найден в текущей директории скрипта, PHP будет искать его в каждой директории, перечисленной в `include_path`. Это позволяет указать PHP, где искать пользовательские библиотеки, классы или другие файлы, необходимые для работы приложения.
`session.save_path` определяет путь каталога, где PHP сохраняет сессионные данные на сервере. PHP использует сессии для хранения информации о состоянии пользователя между запросами. Когда пользователь входит в систему или выполняет другие действия, связанные с сессией, данные сохраняются на сервере для последующего доступа. Указывая путь в `session.save_path`, можно контролировать местоположение сохранения сессионных данных на сервере.
`mail.force_extra_parameters` позволяет указать дополнительные параметры, которые будут переданы при вызове функции отправки электронной почты в PHP, такой как `mail()`. Эти дополнительные параметры могут включать заголовки сообщения или другие параметры, которые необходимо передать в процессе отправки письма. Это может быть полезно, например, для установки дополнительных заголовков или параметров SMTP-сервера при отправке электронной почты из PHP-скриптов.
`open_basedir` - это директива конфигурации в PHP, которая ограничивает доступ PHP-скриптов к файловой системе. Когда `open_basedir` установлен, PHP считает допустимыми только те файлы, которые находятся в указанных директориях или их поддиректориях. Это мероприятие направлено на повышение безопасности, предотвращая PHP-скриптам доступ к чувствительным или нежелательным файлам вне указанных директорий.
`error_reporting` определяет уровень сообщений об ошибках, которые будут отображаться или записываться в журнал ошибок в PHP. Эта директива позволяет управлять тем, какие виды ошибок будут отображаться или логироваться, и в какой степени они будут влиять на выполнение скрипта. Уровни ошибок могут включать предупреждения, уведомления, фатальные ошибки и другие типы сообщений. Например, установка `error_reporting` в значение `E_ALL` позволяет отображать все виды ошибок, включая предупреждения, уведомления и фатальные ошибки.
`display_errors` - это директива конфигурации в PHP, которая определяет, будет ли информация об ошибках, возникающих в PHP-скриптах, выводиться непосредственно на экран пользователя или веб-браузера. Если значение `display_errors` установлено в `On`, PHP будет отображать ошибки на экране вместе с другим контентом страницы. Это может быть полезно во время разработки, когда необходимо быстро обнаруживать и исправлять ошибки. Однако в продакшен среде рекомендуется установить `display_errors` в `Off`, чтобы избежать случайного отображения информации об ошибках пользователю, что может представлять угрозу для безопасности или привести к утечке конфиденциальной информации. Вместо этого рекомендуется настроить запись ошибок в журнал ошибок PHP с помощью директивы `log_errors`, чтобы администраторы могли просматривать и анализировать ошибки без публичного отображения на экране.
`log_errors` - это директива конфигурации в PHP, которая управляет записью информации об ошибках в специальный журнал ошибок на сервере. Когда `log_errors` установлен в значение `On`, PHP будет записывать информацию об ошибках, такую как предупреждения, уведомления и фатальные ошибки, в журнал ошибок на сервере. Этот журнал можно затем просматривать администраторами сервера для обнаружения, анализа и устранения ошибок. При установке `log_errors` в `Off`, PHP не будет записывать информацию об ошибках в журнал, что может быть полезно в некоторых ситуациях, когда вы хотите управлять логированием ошибок вручную или когда не требуется записывать ошибки в журнал из-за специфики приложения. Вместе с `display_errors`, который определяет, будет ли информация об ошибках отображаться на экране пользователя, `log_errors` помогает администраторам сервера эффективно управлять и анализировать ошибки, возникающие в PHP-скриптах.
`allow_url_fopen` - это директива конфигурации в PHP, которая определяет, разрешено ли открывать удаленные файлы и URL-адреса с помощью функций ввода-вывода в PHP, таких как `fopen()`, `file_get_contents()` и другие. Если `allow_url_fopen` установлено в значение `On`, PHP будет позволять открывать удаленные файлы и URL-адреса, что может быть полезно для работы с внешними ресурсами, такими как API или удаленные файлы. Однако это также может представлять риск безопасности, поскольку открытие удаленных файлов может быть использовано злоумышленниками для выполнения атак или доступа к чужим данным.
`file_uploads` - это директива конфигурации в PHP, которая определяет, разрешена ли загрузка файлов на сервер через HTTP-запросы с использованием элемента управления `<input type="file">`. Если `file_uploads` установлено в значение `On`, то загрузка файлов разрешена, а если установлено в значение `Off`, то загрузка файлов запрещена. Это позволяет администраторам сервера контролировать возможность загрузки файлов на сервер и предотвращать загрузку нежелательных или вредоносных файлов.
`short_open_tag` - это директива конфигурации в PHP, которая определяет, разрешено ли использование короткой синтаксиса `<? ?>` для открывающего тега PHP. Если `short_open_tag` установлено в значение `On`, короткий синтаксис для открывающего тега PHP будет разрешен. Если установлено в значение `Off`, короткий синтаксис не будет работать, и будет использоваться только полный синтаксис `<?php ?>`. Это может быть полезно для совместимости с различными конфигурациями сервера и обеспечения более явного разделения кода PHP от остального HTML.
`pm.max_children` - это параметр конфигурации в PHP-FPM, который определяет максимальное количество дочерних процессов PHP-FPM, которые могут одновременно обрабатывать запросы. Каждый дочерний процесс PHP-FPM может обрабатывать одновременно один запрос. Установка значения `pm.max_children` позволяет контролировать количество одновременно работающих процессов PHP-FPM и общее использование ресурсов сервера.
`pm.max_requests` - это параметр конфигурации в PHP-FPM, который определяет максимальное количество запросов, которые может обработать один дочерний процесс PHP-FPM перед его перезапуском. После обработки указанного количества запросов дочерний процесс будет перезапущен, чтобы предотвратить утечку памяти и обеспечить стабильность работы. Установка значения `pm.max_requests` позволяет управлять циклом жизни дочерних процессов PHP-FPM.
`pm` в PHP-FPM отвечает за выбор режима управления процессами (Process Manager). Этот параметр определяет, как PHP-FPM управляет своими дочерними процессами, которые обрабатывают запросы на выполнение PHP-скриптов.
- Static (статический): В этом режиме PHP-FPM создает фиксированное количество дочерних процессов, указанное в директиве `pm.max_children`. Эти процессы остаются активными независимо от количества входящих запросов.
- Dynamic (динамический): В динамическом режиме PHP-FPM динамически регулирует количество дочерних процессов в зависимости от нагрузки. Количество активных дочерних процессов контролируется директивами `pm.max_children`, `pm.start_servers`, `pm.min_spare_servers` и `pm.max_spare_servers`.
- OnDemand (по требованию): В режиме по требованию PHP-FPM создает дочерние процессы только при наличии входящих запросов. Количество активных дочерних процессов увеличивается или уменьшается в зависимости от нагрузки и контролируется директивами `pm.max_children`, `pm.process_idle_timeout` и `pm.max_requests`.
Каждый режим управления процессами имеет свои преимущества и особенности, и выбор зависит от факторов, таких как доступные ресурсы сервера, ожидаемая нагрузка и требования к производительности.
`pm.start_servers` - это параметр конфигурации в PHP-FPM, который определяет начальное количество дочерних процессов, которые будут созданы при запуске PHP-FPM. Эти дочерние процессы будут готовы к обработке входящих запросов сразу после запуска PHP-FPM. Этот параметр позволяет задать начальное количество активных процессов для быстрого реагирования на входящий трафик.
`pm.min_spare_servers` - это параметр конфигурации в PHP-FPM, который определяет минимальное количество дочерних процессов, которые должны оставаться активными в режиме ожидания (idle), чтобы обеспечить непрерывную обработку входящих запросов. Если количество активных процессов опускается ниже установленного значения, PHP-FPM создает новые процессы для поддержания заданного минимального количества активных процессов.
`pm.max_spare_servers` - это параметр конфигурации в PHP-FPM, который определяет максимальное количество дочерних процессов, которые могут оставаться неактивными (в режиме ожидания, idle), чтобы обеспечить гибкость масштабирования в зависимости от нагрузки. Если количество неактивных процессов превышает установленное значение, лишние процессы будут завершены, чтобы не перегружать сервер ресурсами.
После выбора нажмите на «OK»