12

OK so I am experiencing something quite odd. My phpinfo() shows one version while php -v shows another.

I am running locally on a MacBook Air (Mojave), with Laravel and Valet.

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

While in my terminal, it shows:

php -v

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

Now, if I do a which php I get this:

/usr/local/bin/php

In my ~/.bash-profile, I have this:

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

I have tried to:

  • Restart Nginx
  • Restart Valet

  • Unlink PHP@7.2 and link PHP@7.3with Homebrew:

    Olivers-MacBook-Air:~ oliverbusk$ brew unlink php@7.2 Error: No such keg: /usr/local/Cellar/php@7.2

How can I get my actual valet site to use php@7.3?

oliverbj
  • 5,771
  • 27
  • 83
  • 178

11 Answers11

46

Below simple fix worked for me.

rm ~/.config/valet/valet.sock
valet restart 
Chanaka
  • 954
  • 1
  • 8
  • 17
6

In my case it worked after forcing the specific PHP version:

valet use php@7.4 --force
gradosevic
  • 4,809
  • 2
  • 36
  • 51
5

Good news, please upgrade to latest valet version, you can easily switch php version. Source: 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 php@7.2

valet use php   //without any specification, it will be using latest version
Community
  • 1
  • 1
Shiro
  • 7,344
  • 8
  • 46
  • 80
4

Something so basic as rebooting my Macbook solved this issue. Once rebooted, the correct version 7.3 showed in my phpinfo();

oliverbj
  • 5,771
  • 27
  • 83
  • 178
3

From MacBook pro (Mojave), with Laravel and Valet:

valet use php@7.2
geisterfurz007
  • 5,292
  • 5
  • 33
  • 54
  • 3
    Welcome to SO! When you post an answer, eve if it is ok, try to explain your answer a little bit. If it is a new point of view, show Pros and Cons. I already edit your answer, but the official language on SO is english, there is another SO on Spanish. – David García Bodego Oct 20 '19 at 03:24
3

To be able to effectively change the version of php on my machine I use the following script:

Add to your user's .bash_profile
Then use the following command to switch

switch-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

3

I am running linux valet on Ubuntu 20.04 , The following command works for me

valet use 8.0

Here, 8.0 refers to the php version.

Bedram Tamang
  • 3,748
  • 31
  • 27
2

Basically the php valet uses and the one used by your macbook is different. But as already mentioned by @Shiro and @Israel Alexis Palma Quezada, in newer versions valet use php73 would solve your problem. If it's not working, try running composer global update to update your global packages, thus updating valet

To update the mac php version, execute the following lines:

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

or simply add these two lines to your ~/.profile or ~/.bash_profile

Don't forget to run source ~/.profile or source ~/.bash_profile or whatever file you chose to edit.

BonisTech
  • 342
  • 3
  • 15
2

NB: Tested this solution on Ubuntu 20.04 Desktop

If you are using Valet Linux Plus(Has more features than Valet Linux) Just do valet use {your PHP version} --update-cli. For instance to use php8.0 just run:

valet use 8.0 --update-cli

This will update both php-fpm version plus php-cli version too.

0

Yesterday I encountered the same problem on Ubuntu 18.

At first I changed the PHP version:

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

But valet was still showing the wrong PHP version. Rebooting did not work. In fact, phpinfo() was displaying PHP 7.1.

After run ps -aux | grep php I noticed few instances of php-fpm (5.6, 7.1 and 7.2) running.

I stopped them

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

Then started 7.3

$ sudo service php7.3-fpm start

And now my phpinfo() display the correct version of PHP

Clément Baconnier
  • 5,718
  • 5
  • 29
  • 55
0

I ran into this same problem while using valet plus today. When I switched PHP versions it was showing the previous one in my browser but the correct one in my terminal. Looking at the my brew services list:

brew services list

It showed that one of the valet-php services (valet-php@7.2) was not in the service list but somehow my valet was able to switch to it. Valet didn't install this PHP properly and that's what was causing the issue. I did the following to uninstall that PHP and reinstall it with 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

The PHP version that was once not showing in the brew services list now showed and I was able to "stop" that php version's service:

brew services stop valet-php@7.2 

which made everything work properly again without a restart.

Eshcole Peets
  • 19
  • 1
  • 1