将 Laravel Homestead 用于 PHP5.6 和 PHP7 项目

Using Laravel Homestead for PHP5.6 and PHP7 projects

在办公室,我们使用 Homestead 作为本地开发环境。到目前为止,我们所有的项目都是在 PHP5.6 中完成的。现在我们有了一个新项目,我们将使用 PHP7。我目前的 PHP5.6 homestead 机器无法 运行 PHP7。如何实现 运行 PHP5.6 和 PHP7 项目?他们不必同时 运行,所以如果可以更改 Homestead.yaml 以使用较新的版本,那会很好。

我已经尝试过 运行 vagrant box add laravel/homestead --box-version 1.0.1。这添加了 1.0.1 框,但是当我将 version: 1.0.1 添加到我的 Homestead.yaml 并开始流浪时,PHP 版本仍在 5.6.

找到解决办法了!我遵循了 this 教程。我可以 运行 一个 PHP 5.6 和一个 PHP 7 Homestead。我唯一需要做的(我已经配置了 PHP 5.6 homestead)是:

  1. 通过 运行ning git clone https://github.com/laravel/homestead.git ~/Homestead-7
  2. 在 Homestead-7 文件夹(或其他名称)中克隆最新的 homestead 版本
  3. 进入此目录并 运行 bash init.sh 并对所有问题回答否。
  4. 就是这样!你可能需要升级你的 vagrant(我的太旧了)但是通过在 https://www.vagrantup.com/downloads.html 下载最新版本很容易做到(不要忘记 运行 vagrant provision 在 Homestead-7)

以防人们发现这个 post - 答案已更改。

如果您 运行 Homestead v6 或更高版本 - 默认情况下您会自动安装多个 PHP 版本。

在您的 Homestead.yaml 文件中您可以设置版本:

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
      php: "5.6"

此外,您可以通过 CLI 使用任何受支持的 PHP 版本:

php5.6 artisan list
php7.0 artisan list
php7.1 artisan list

查看 Laravel 文档以获取更多信息:https://laravel.com/docs/5.4/homestead#multiple-php-versions

我想补充一下劳伦斯的回答。

将php5.6添加到Homestead.yml后,不能简单地做"vagrant up --provision"。不起作用。您必须通过 运行ning 命令 "vagrant destroy" 实际销毁虚拟机并重新创建虚拟机。

因此,在销毁虚拟机之前,最好备份其中的每个数据库。我通过将所有 sql 转储到代码文件夹中来做到这一点。在我 运行 命令 "vagrant up" 之后,我可以简单地通过 ssh 连接到我的虚拟机,然后再次进入 mysql 命令行中的 运行 "source dump.sql" .

Homestead 的最新 Laravel-Version 包括 PHP 5.6 是 Laravel 5.6。有关详细信息和安装说明,请参阅 https://laravel.com/docs/5.6/homestead
在安装过程中使用以下命令得到这个 Homestead-Vagrant-Box:

vagrant box add laravel/homestead --box-version 6.4.0
git clone https://github.com/laravel/homestead.git .
git checkout v7.20.0

这个 Homestead-Version 支持 PHP 5.6 到 7.3。
(德语的更多详细信息:https://blog.dmr-solutions.com/blog/homestead-vagrant-box-mit-php-56