好的,所以我遇到了很奇怪的事情。我的phpinfo()
显示一个版本,而php -v
显示另一个版本。
我正在使用 Laravel 和 Valet 在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"
我试图:
重新启动代客
取消链接PHP@7.2并使用Homebrew链接PHP@7.3:
Olivers-MacBook-Air:〜Oliverbusk $ brew取消链接php@7.2 错误:没有这样的桶:/usr/local/Cellar/php@7.2
如何获取我的实际代客网站以使用 php@7.3 ?
答案 0 :(得分:3)
下面的简单修复对我有用。
rm ~/.config/valet/valet.sock
valet restart
答案 1 :(得分:3)
为了能够有效地更改我机器上的 php 版本,我使用了以下脚本:
添加到您用户的 .bash_profile
然后使用下面的命令切换
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
答案 2 :(得分:1)
诸如重启我的Macbook这样基本的东西解决了这个问题。重新启动后,正确的版本7.3
显示在我的phpinfo();
答案 3 :(得分:1)
昨天我在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版本
答案 4 :(得分:1)
好消息,请升级到最新的代客版本,即可轻松切换php版本。 来源:https://laravel.com/docs/5.8/valet
PHP版本
代客允许您使用代客使用php @ version命令切换PHP版本。如果尚未安装,代客将通过Brew安装指定的PHP版本:
valet use php@7.2
valet use php //without any specification, it will be using latest version
答案 5 :(得分:1)
基本上,PHP代客使用的和您的Macbook使用的代客是不同的。
但是,正如@Shiro和@以色列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 ~/.profile
或source ~/.bash_profile
或您选择编辑的任何文件。
答案 6 :(得分:1)
我今天在使用valet plus时遇到了同样的问题。当我切换PHP版本时,它在浏览器中显示的是前一个版本,但在终端中显示的是正确的版本。查看我的酿造服务列表:
brew services list
它表明其中一个valet-php服务(valet-php@7.2)不在服务列表中,但是我的代客可以通过某种方式切换到该列表。代客未正确安装此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
这使所有内容无需重新启动即可再次正常工作。
答案 7 :(得分:1)
在我的情况下,它在强制特定的 PHP 版本后工作:
@app.route('/search')
def search():
term = request.args.get('term')
答案 8 :(得分:0)
使用Laravel和Valet从MacBook Pro(Mojave):
valet use php@7.2
答案 9 :(得分:0)