fapchat
@fapchat

Почему версии php в phpinfo() и php -i расходятся?

5e876461c0d5e366574391.png
Из-за чего это может быть и к каким проблемам приводить?
Как исправить?
  • Вопрос задан
  • 1216 просмотров
Решения вопроса 2
glaphire
@glaphire Куратор тега PHP
PHP developer
Потому что в настройках веб-сервера указана другая версия php, поэтому он ее использует и результат показывает тоже относительно ее, а вызов бинарника php работает независимо от веб сервера. Для apache надо обновить модуль php, а для nginx надо в основных настройках подключить нужную версию php-fpm. Более развернутые ответы на эту тему (ссылка).
Ответ написан
Комментировать
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Ну разные версии от того что явно у вас установлено несколько версий PHP

наверняка покажет что есть 7.3 и 7.4
ls -la /etc/php/

А по поводу cli, то вопрос в том какой симлинк в /usr/bin/php
Покажет на какой бинарник ссылается php и это соотв-но можно поменять
readlink /usr/bin/php

Если не нужно несколько версий PHP то я бы удалил лишниюю версию и изменил настройки веб сервера (apache) чтобы использовалась правильная версия.
Если этот вариант не подходит, то можно запускать правильную версию php дёргая правильный бинарник
find /usr/bin/php*

обычно это будет что-то типа
/usr/bin/php7.3 -v
/usr/bin/php7.4 -v

Проблемы использования разных версий PHP между web и cli может быть никаких, если установлены одинаковые extension и используемый PHP код совместим с обоими версиями, но лучше использовать одну и ту же версию.

Если в принципе скрипты через cli не запускаются (нету таких вещей как фоновые воркеры, демоны и тд) то вообще разницы практически нет.
Ещё нюанс может быть с composer'ом который запускается через cli и тут вопрос в том одинаковые ли модули в разных версиях РНР, и требования ПО. Так как может быть что есть библиотека которая не совместима с PHP 7.4 и пуская composer через 7.4 получите ошибку установки, так как не выполнится проверка по версии РНР.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Установлены две версии php.
Одна — см. путь до php.ini в браузере
Вторая — сделать `php --ini` в консоли.

В теории, можно сделать так, чтобы веб-сервер использовал консольный пхп или наоборот, чтобы в консоли в $PATH был путь до вашего веб-серверного php.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы