Я вообще не понимаю, почему:
php -v
(or) php -m
возвращение: PHP 7.0
и phpinfo () говорит, что я использую PHP 5.
это странно, есть идеи?
Я использую Ubuntu и Nginx. Ниже представлен принтскрин:
Это не странно. 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.
Если у вас возникла эта проблема при обновлении с PHP5 до PHP7 в Ubuntu 14.04 с Apache, вот что мне помогло (кредит идет Вот):
Отключить модуль PHP5 на Apache:
sudo a2dismod php5
Теперь включите PHP7:
sudo a2enmod php7.1
Для отражения изменений требуется перезапуск Apache:
sudo systemctl restart apache2