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 协议》,转载必须注明作者和本文链接
附言 1  ·  5年前

感谢@shijf的建议。

本帖由系统于 5年前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 20

总结一下:
1、可以先修改 Homestead.yaml 增加

sites:
    - map: homestead.test
      to: /home/vagrant/code/Laravel/public
      php: "5.6"

2、启动 vagrant provision && vagrant reload
3、登录虚拟机 vagrant ssh 执行命令

4、update-alternatives --display php 查看所有 php 版本和当前版本

5、sudo update-alternatives --config php

执行后,会列出当前 php 所有版本和编号,输入编号,切换到执行的版本

6、完成。

4年前 评论
xingchen

vagrant update-alternatives --display php
是这么用的吗

5年前 评论

@xingchen 不是,vagrant ssh 后执行

5年前 评论

@xmkl 在vagrant ssh 后执行,直接报没有这个命令。。-bash: vagrant: command not found

5年前 评论

@王成涛 这个好像只是在cli 里面切换版本,打印PHPinfo 还是以前的。。

5年前 评论
lezhi 4年前

不知道那么没设置对。 Homestead.yaml 设置了 7.2,php -v 是 7.2 ,update-alternatives --config php 查看也是 7.2,vagrant halt -> vagrant up 或 vagrant provision 了 ,phpinfo() 还是 7.1.7

5年前 评论

@FreeMason 你没看懂这篇文章

5年前 评论

最后一句非常棒 :+1:

5年前 评论

file请问没有5.6怎么破?

4年前 评论

总结一下:
1、可以先修改 Homestead.yaml 增加

sites:
    - map: homestead.test
      to: /home/vagrant/code/Laravel/public
      php: "5.6"

2、启动 vagrant provision && vagrant reload
3、登录虚拟机 vagrant ssh 执行命令

4、update-alternatives --display php 查看所有 php 版本和当前版本

5、sudo update-alternatives --config php

执行后,会列出当前 php 所有版本和编号,输入编号,切换到执行的版本

6、完成。

4年前 评论

$ cd ~/Homestead && vagrant provision && vagrant reload 需要重新加载

3年前 评论
liwei3773

完全按照上述操作了,phpinfo()还是显示7.1 :sob:

3年前 评论
gh54gbvwsff4 2年前
xmkl (楼主) 3年前

PHP版本切换完之后php-config怎么切换呀

3年前 评论
Reliable (作者) 3年前
BenL 1年前

file homestead装好了,访问项目502 我知道是php的问题,但是不知道为啥子会出问题,坑太多了

2年前 评论

最后一句话,全文的精髓 :+1:

7个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!