7

好的,所以我遇到了一些很奇怪的事情。我的phpinfo()显示一个版本,而php -v显示另一个。

我使用LaravelValet在 MacBook Air (Mojave) 上本地运行。

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"

我试图:

  • 重启 Nginx
  • 重启代客

  • 取消链接 PHP@7.2 并将 PHP@7.3 与 Homebrew 链接:

    Olivers-MacBook-Air:~ Oliverbusk$ brew unlink php@7.2 错误:没有这样的小桶:/usr/local/Cellar/php@7.2

如何让我的实际代客站点使用php@7.3

4

11 回答 11

38

下面的简单修复对我有用。

rm ~/.config/valet/valet.sock
valet restart 
于 2020-07-24T21:47:58.317 回答
4

像重启我的 Macbook 这样基本的东西解决了这个问题。重新启动后,正确的版本7.3显示在我的phpinfo();

于 2018-12-12T08:32:28.980 回答
4

好消息,请升级到最新的代客版本,您可以轻松切换 php 版本。来源:https ://laravel.com/docs/5.8/valet

PHP 版本

Valet 允许您使用 valet use php@version 命令切换 PHP 版本。如果尚未安装,Valet 将通过 Brew 安装指定的 PHP 版本:

valet use php@7.2

valet use php   //without any specification, it will be using latest version
于 2019-08-13T13:20:47.107 回答
3

在我的情况下,它在强制特定的 PHP 版本后起作用:

valet use php@7.4 --force
于 2021-06-09T14:54:27.880 回答
3

为了能够有效地更改我机器上的 php 版本,我使用以下脚本:

添加到你用户的 .bash_profile
然后使用下面的命令切换

开关-php7.x

switch-php() {
  valet stop
  brew unlink php@7.2 php@7.3 php@7.4
  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

于 2021-01-27T16:41:21.457 回答
2

我在Ubuntu 20.04上运行linux valet,以下命令适用于我

valet use 8.0

这里,8.0 指的是 php 版本。

于 2021-03-15T01:23:53.637 回答
2

来自 MacBook pro (Mojave),带有 Laravel 和 Valet:

valet use php@7.2
于 2019-10-20T02:30:15.677 回答
1

基本上 php 代客使用的和你的 macbook 使用的是不同的。但是正如@Shiro 和@Israel Alexis Palma Quezada 已经提到的那样,在较新的版本中valet use php73可以解决您的问题。如果它不起作用,请尝试运行composer global update以更新您的全局包,从而更新代客

要更新 mac php 版本,请运行:

export PATH="your/path/to/php@7.3/bin:$PATH"
export PATH="your/path/to/php@7.3/sbin:$PATH"

或简单地将这两行添加到您的~/.profile~/.bash_profile

不要忘记运行source ~/.profilesource ~/.bash_profile您选择编辑的任何文件。

于 2020-04-08T12:31:16.810 回答
1

我今天在使用 valet plus 时遇到了同样的问题。当我切换 PHP 版本时,它在我的浏览器中显示了前一个版本,但在我的终端中显示了正确的版本。查看我的 brew 服务列表:

brew services list

它表明其中一项 valet-php 服务 (valet-php@7.2) 不在服务列表中,但不知何故我的代客能够切换到它。Valet 没有正确安装这个 PHP,这就是导致问题的原因。我执行以下操作来卸载该 PHP 并使用 brew 重新安装它。

brew uninstall valet-php@7.2
sudo rm -rf /usr/local/Cellar/valet-php@7.2/7.2.34_1
brew install valet-php@7.2

曾经未显示在 brew 服务列表中的 PHP 版本现在显示了,我能够“停止”该 php 版本的服务:

brew services stop valet-php@7.2 

这使一切重新正常工作而无需重新启动。

于 2020-10-14T20:51:16.683 回答
0

昨天我在 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

于 2018-12-12T08:43:39.010 回答
0

注意:在Ubuntu 20.04 桌面上测试了这个解决方案

如果您使用Valet Linux Plus(比 Valet Linux 具有更多功能),只需valet use {your PHP version} --update-cli. 例如使用 php8.0 只需运行:

valet use 8.0 --update-cli

这也将更新 php-fpm 版本和 php-cli 版本。

于 2022-02-14T06:28:12.183 回答