PHPInfo / Valet - две разные версии PHP

Хорошо, я испытываю кое-что довольно странное. Мой phpinfo() показывает одну версию, а php -v показывает другую.

Я работаю локально на MacBook Air (Mojave) с Laravel и Камердинер.

phpinfo():

PHP Version 7.2.13

Configuration File (php.ini) Path   /usr/local/etc/php/7.2
Loaded Configuration File   /usr/local/etc/php/7.2/php.ini
Scan this dir for additional .ini files /usr/local/etc/php/7.2/conf.d

В моем терминале он показывает:

php -v

PHP 7.3.0 (cli) (built: Dec  7 2018 11:00:11) ( NTS )

Теперь, если я сделаю which php, я получу следующее:

/usr/local/bin/php

В моем ~/.bash-profile у меня вот такое:

export "PATH=~/.composer/vendor/bin:$PATH"

Я пытался:

Как я могу заставить мой фактический сайт камердинера использовать [email protected]?

Используйте переключатель php. Это поможет вам правильно переключить php и перезапустить valet.

Levente Otta 10.12.2018 21:56
rm ~/.config/valet/valet.sock; valet restart; решил это за меня.
Chk 24.07.2020 23:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
6
2
12 934
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

Ответ принят как подходящий

Такая простая вещь, как перезагрузка моего Macbook, решила эту проблему. После перезагрузки правильная версия 7.3 показывала в моем phpinfo();

rm ~ / .config / valet / valet.sock; перезапуск камердинера; решил это для меня

Chk 24.07.2020 23:48

Вчера я столкнулся с той же проблемой на Ubuntu 18.

Сначала я изменил версию PHP:

$ sudo a2dismod php7.2
$ sudo a2enmod php7.3
$ sudo update-alternatives --set php /usr/bin/7.3

Но камердинер по-прежнему показывал неправильную версию PHP. Перезагрузка не прошла. Фактически, phpinfo() отображал PHP 7.1.

После запуска ps -aux | grep php я заметил несколько запущенных экземпляров php-fpm (5.6, 7.1 и 7.2).

Я остановил их

$ sudo service php5.6-fpm stop
$ sudo service php7.1-fpm stop
$ sudo service php7.2-fpm stop

Потом запустил 7.3

$ sudo service php7.3-fpm start

И теперь мой phpinfo() отображает правильную версию PHP

Хорошие новости, пожалуйста, обновите до последней версии камердинера, вы можете легко переключить версию php. Источник: https://laravel.com/docs/5.8/valet

PHP Versions

Valet allows you to switch PHP versions using the valet use php@version command. Valet will install the specified PHP version via Brew if it is not already installed:

valet use [email protected]

valet use php   //without any specification, it will be using latest version

Из MacBook Pro (Mojave) с Laravel и Valet:

valet use [email protected]

Добро пожаловать в SO! Когда вы публикуете ответ, даже если это нормально, попробуйте немного объяснить свой ответ. Если это новая точка зрения, покажите «за» и «против». Я уже редактирую ваш ответ, но официальный язык на SO - английский, есть еще один SO на испанском.

David García Bodego 20.10.2019 05:24

В основном php valet использует другой, и тот, который используется вашим MacBook, отличается. Но, как уже упоминали @Shiro и @Israel Alexis Palma Quezada, в более новых версиях valet use php73 решит вашу проблему. Если он не работает, попробуйте запустить composer global update для обновления ваших глобальных пакетов, таким образом обновив valet.

Чтобы обновить версию php для Mac, запустите:

export PATH = "your/path/to/[email protected]/bin:$PATH"
export PATH = "your/path/to/[email protected]/sbin:$PATH"

или просто добавьте эти две строчки в свой ~/.profile или ~/.bash_profile

Не забудьте запустить source ~/.profile или source ~/.bash_profile или любой другой файл, который вы выбрали для редактирования.

У меня сработало простое исправление ниже.

rm ~/.config/valet/valet.sock
valet restart 

Сработало для меня как шарм - Спасибо @Chk!

Zeshan 09.12.2020 08:53

Работает хорошо, но мне кажется, что мне нужно повторять это время от времени (возможно, после перезагрузки компьютера), есть ли постоянное решение?

Visualise 05.04.2021 02:42

работал и на ubuntu, просто другой путь, по крайней мере, на моей машине, rm ~/.valet/valet.sock

kuus 28.04.2021 22:36

Не уверен, почему я теряю эту конфигурацию после перезапуска и мне приходится делать это снова и снова, кому-нибудь еще?

Israel Ortuño 07.06.2021 15:41

Хотелось бы знать, как это исправить, чтобы этого больше не происходило.

James Parker 26.10.2021 03:09

Это также следует добавить в библиотеку камердинера как команду перезапуска.

Gkiokan 02.12.2021 15:26

Я столкнулся с этой же проблемой сегодня при использовании valet plus. Когда я переключал версии PHP, в моем браузере отображалась предыдущая, а в терминале - правильная. Глядя на мой список услуг по пивоварению:

brew services list

Он показал, что одной из служб valet-php ([email protected]) нет в списке служб, но каким-то образом мой камердинер смог переключиться на нее. Valet не установил этот PHP должным образом, и это было причиной проблемы. Я сделал следующее, чтобы удалить этот PHP и переустановить его с помощью brew.

brew uninstall [email protected]
sudo rm -rf /usr/local/Cellar/[email protected]/7.2.34_1
brew install [email protected]

Версия PHP, которая раньше не отображалась в списке сервисов пивоварения, теперь показывалась, и я смог «остановить» сервис этой версии php:

brew services stop [email protected] 

что заставило все снова работать нормально без перезапуска.

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

Добавьте к вашему пользователю .bash_profile
Затем используйте следующую команду для переключения

переключатель-php7.x

switch-php() {
  valet stop
  brew unlink [email protected] [email protected] [email protected]
  brew link --force --overwrite php@$1
  brew services restart php@$1
  composer global update
  rm -f ~/.config/valet/valet.sock
  valet install
}

https://gist.github.com/r1tt3r/e0f199eb274d5ff186b73956af594316

Я использую linux камердинер на Ubuntu 20.04, у меня работает следующая команда

valet use 8.0

Здесь 8.0 относится к версии php.

ты спасешь мой день. Спасибо

Nipun Tharuksha 27.10.2021 08:04

В моем случае это сработало после форсирования конкретной версии PHP:

valet use [email protected] --force

Другие вопросы по теме