Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья3 мин чтенияПросмотры3

Почему версия PHP в терминале отличается от версии сайта

Разбираем CLI и PHP-FPM: как проверить окружение командной строки и понять, почему его настройки не доказывают конфигурацию веб-запросов.

Два компьютерных окружения на техническом рабочем столе
В этой статье

В терминале установлена нужная версия PHP, но сайт продолжает сообщать о другой. Это не обязательно ошибка обновления. Командная строка и веб-сервер могут запускать разные исполняемые файлы, читать разные настройки и использовать разные наборы расширений.

Проверьте PHP командной строки

В Linux с установленным PHP CLI выполните:

php -v

php --ini

php -m

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

Если в системе несколько версий, короткое имя php выбирается из окружения текущего сеанса. Планировщик или служба может использовать абсолютный путь к другой версии. Сравнивайте реальную команду запуска, а не только результат в личном терминале.

Проследите путь веб-запроса

При работе через PHP-FPM веб-сервер передаёт запросы в определённый сокет или адрес пула. Нужно установить, какая служба обслуживает этот пул и какие настройки относятся к нему. Имена служб и расположение файлов зависят от дистрибутива и способа установки.

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

Сравните значимые параметры

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

Пример: импорт из терминала завершается, а запуск через веб-интерфейс прерывается. Причиной может быть отличие лимитов, пользователя процесса или ограничение прокси. Успешный CLI-запуск ещё не доказывает, что ошибка находится исключительно в PHP-FPM.

Не оставляйте публичную страницу диагностики

Развёрнутый вывод сведений о PHP может раскрыть пути, переменные окружения и настройки сервера. Если для проверки веб-окружения используется диагностический механизм, он должен быть доступен только ответственному специалисту и удалён или отключён после проверки.

Предпочтительно использовать уже существующие защищённые средства диагностики CMS или панели. Публикация открытой страницы со всеми параметрами ради одной версии создаёт лишнюю задачу по контролю доступа и уборке.

Проверьте фоновые задания отдельно

Даже после исправления веб-пула планировщик может продолжать запускать прежний CLI. Проверьте явный путь к бинарному файлу, пользователя и конфигурацию задания. Иначе сайт будет работать в одном окружении, а обмен каталогом — в другом.

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

Набор расширений тоже проверяйте в каждой среде отдельно. Наличие модуля в CLI не доказывает его загрузку в том пуле, который обслуживает сайт.

Обсуждение0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.