Homestead 下切换 PHP 版本
前言
Laravel 的 Homestead 中自带了 PHP5.6、PHP7.0、PHP7.1 和 PHP7.2 这 4 个版本。默认运行的最高版本 7.2,但有时公司需求不得不切换到别的版本。怎么切换呢?Homestead中自带了切换版本的方式,如下:
sites:
- map: homestead.test
to: /home/vagrant/code/Laravel/public
php: "5.6"
但是,当你在 homestead 中执行 composer 时,或者用 php -v 查看 php 版本时,还是最高版本7.2的。导致 composer 进行版本检查时或者更新包时,都是按照7.2版本来更新的。怎么办呢,homestead 中自带了版本管理工具
update-alternatives
用法如下:
update-alternatives --display php 查看所有 php 版本和当前版本
update-alternatives --config php 执行后,会列出当前 php 所有版本和编号,输入编号,切换到执行的版本
之前没注意 Homestead目录下有个 aliases 文件,这个文件中定义了一些可以直接在虚拟机中使用的命令,比如想切换到7.0版本直接执行
php70 即可
本作品采用《CC 协议》,转载必须注明作者和本文链接
感谢@shijf的建议。
本帖由系统于 6年前 自动加精
高认可度评论:
总结一下:
1、可以先修改 Homestead.yaml 增加
2、启动
vagrant provision && vagrant reload
3、登录虚拟机
vagrant ssh
执行命令4、
update-alternatives --display php
查看所有 php 版本和当前版本5、
sudo update-alternatives --config php
执行后,会列出当前 php 所有版本和编号,输入编号,切换到执行的版本
6、完成。
vagrant update-alternatives --display php
是这么用的吗
@xingchen 不是,vagrant ssh 后执行
@xmkl 在vagrant ssh 后执行,直接报没有这个命令。。-bash: vagrant: command not found
@gaoxiang
@王成涛 这个好像只是在cli 里面切换版本,打印PHPinfo 还是以前的。。
不知道那么没设置对。 Homestead.yaml 设置了 7.2,php -v 是 7.2 ,update-alternatives --config php 查看也是 7.2,vagrant halt -> vagrant up 或 vagrant provision 了 ,phpinfo() 还是 7.1.7
@FreeMason 你没看懂这篇文章
最后一句非常棒 :+1:
总结一下:
1、可以先修改 Homestead.yaml 增加
2、启动
vagrant provision && vagrant reload
3、登录虚拟机
vagrant ssh
执行命令4、
update-alternatives --display php
查看所有 php 版本和当前版本5、
sudo update-alternatives --config php
执行后,会列出当前 php 所有版本和编号,输入编号,切换到执行的版本
6、完成。
$ cd ~/Homestead && vagrant provision && vagrant reload 需要重新加载
完全按照上述操作了,phpinfo()还是显示7.1 :sob:
PHP版本切换完之后php-config怎么切换呀
最后一句话,全文的精髓 :+1: