unix — различный результат между php -v и phpinfo ()

Я вообще не понимаю, почему:

php -v
(or) php -m

возвращение: PHP 7.0

и phpinfo () говорит, что я использую PHP 5.

это странно, есть идеи?


Я использую Ubuntu и Nginx. Ниже представлен принтскрин:

введите описание изображения здесь

введите описание изображения здесь

7

Решение

Это не странно. php -v работает php-cli, который, в свою очередь, читает другой INI-файл. phpinfo() оценивается вашим веб-сервером, который читает специфичный для веб-сервера INI-файл.

В случае с Ubuntu это: /etc/phpX/apache2/php.ini а также /etc/phpX/cli/php.ini, для nginx в вашем случае он использует php-fpmчей конфиг находится в /etc/phpX/fpm/php.ini,


Кроме того, в вашем случае PHP7, вероятно, либо скомпилирован, либо извлечен из какого-либо другого репозитория. Если вы хотите, чтобы nginx использовал PHP7, вам нужно либо скомпилировать, либо установить php7-fpm или что-то в этих строках. YMMV в зависимости от того, как вы установили PHP7 в свою систему.


Чтобы получить представление о том, как это работает, создайте файл в файловой системе внутри вашей веб-папки, скажем, с именем test.php со следующим содержанием:

<?

phpinfo();

?>

Затем попробуйте запустить:

# php test.php

а затем получить доступ к этому файлу из веб-браузера по адресу http://path.to.your.site.com/path/to/test.php

Вы увидите, что Cli PHP сообщит о версии 7.0, тогда как nginx будет продолжать сообщать о PHP5.

4

Другие решения

Если у вас возникла эта проблема при обновлении с PHP5 до PHP7 в Ubuntu 14.04 с Apache, вот что мне помогло (кредит идет Вот):

Отключить модуль PHP5 на Apache:

sudo a2dismod php5

Теперь включите PHP7:

sudo a2enmod php7.1

Для отражения изменений требуется перезапуск Apache:

sudo systemctl restart apache2
0

По вопросам рекламы [email protected]