【问题标题】:Homestead Installed PHP7 but I need PHP5Homestead 安装了 PHP7 但我需要 PHP5
【发布时间】:2016-04-17 11:31:27
【问题描述】:

Homestead 突然停止为我工作,所以我试图删除整个东西并重新安装,但它并不顺利。

经过一天半的时间处理各种问题后,我让它“运行”了。但是,由于我无法理解的原因,我的 Homestead 盒子现在运行的是 PHP 7。

The instructions 我关注的 optional 选项用于安装 PHP 7,但我故意跳过了该选项,因为我们使用的是 PHP 5。

对于我的生活,我无法弄清楚如何解决这个问题。我尝试过的事情:

  • 我已经多次销毁并重新安装了盒子。
  • 我已经多次删除了VirtualBox盒子并重新下载了它。
  • 我尝试根据一个建议安装盒子的 v0.3.3。 (我也相应地更新了 homestead.rb 脚本。)有一次,在安装过程中出现了 php7.0-fpm: unrecognized service 失败,并且配置的站点返回 502 Bad Gateway 错误。
  • 使用 v.0.4.0 重新安装后,它已开始“运行”,正如我所描述的(按预期服务网站等),但使用的是 PHP 7。

寻找解决方案一直走入死胡同。

我只是一个虚拟的前端开发人员。 :) Laravel、Vagrant、Homestead,所有这些东西都让我头疼。我只是想让它再次工作,这样我就可以回到我的实际工作中。任何建议或寻求研究此问题的替代途径将不胜感激。

【问题讨论】:

  • 所以 vagrant 它会下载已经安装了大部分东西的图像。您可以尝试不同的图像。 atlas.hashicorp.com/boxes/… 。或者你可以随时 ssh 到你的盒子并在那里管理它;)
  • 为什么不直接使用 php7?如果代码可以正常运行,请使用它。比php5有很大的进步。
  • @JonathanKuhn 在我的情况下,我必须处理一个遗留项目,我试图完成这个,但到目前为止还没有运气。

标签: php laravel vagrant homestead php-7


【解决方案1】:

我遇到了类似的问题,我尝试将 Homestead 升级到最新的 Homestead 7.0 机器并将其配置为运行 PHP 5.6 而不是 PH7,各种消息来源称这可以通过在 .yaml 文件中添加一行来指定 PHP版本。

sites:
- map: myproject.local
  to: /home/vagrant/Code/craven/public_html
  php: "5.6"

当我尝试这样做时,实际发生的是我收到了 502 CGI 网关错误。以下是我必须采取的修复步骤的摘要:

1) SSH 进入 Homestead 虚拟机。

ssh vagrant@127.0.0.1 -p 2222

查看 /var/log/nginx/ 中的 nginx 错误日志发现服务器正在寻找的 PHP 5.6 文件不存在。

您可以通过查看可执行文件来确认这一点。

ls -la /usr/bin/php*

2) 要安装 PHP 5.6,请运行

sudo apt-get update
sudo apt-get install php5.6-fpm

可以通过命令确认php 5.6服务正在运行

service --status-all

3) 一切正常后,刷新您网站的网页,它现在应该可以工作了。就我而言,因为我运行的是 Laravel 4.2 站点,所以我安装了 Mcrypt:

sudo apt-get install php5.6-mcrypt

4) 为了让我的 mysql 数据库启动并运行,我还必须安装 mysql。

sudo apt-get install php5.6-mysql

当然,在升级 Homestead 框之前,我必须从导出的文件中重新导入数据库内容。

请注意,如果您曾经销毁并重新创建 Homestead 盒子,则需要再次重复所有这些步骤。

【讨论】:

    【解决方案2】:

    我也遇到过这个问题,我通过安装旧版 homestead box v0.3.3 解决了这个问题,并且我使用了旧版本的 homestead 安装程序,所以我建议您删除当前 box v0.4.0 并删除你的宅基地文件夹然后这样做:

    $vagrant box add laravel/homestead --box-version 0.3.3
    

    然后从 git 下载旧版本的 Homestead 安装程序,我正在使用 v2.1.8 它工作正常。 享受 php 5.6 :)

    【讨论】:

    • 我试过这个,当运行vagrant up它搜索框0.4.0,没有找到它并开始下载。
    • 删除你的盒子并试试这个命令: $vagrant box add laravel/homestead atlas.hashicorp.com/laravel/boxes/homestead/versions/0.3.3/…
    • 我知道这已经过时了,但是即使在 vagrant box 添加 0.3.3 之后,您是否也曾尝试下载最新的宅基地?我全部下载了,然后当我运行 vagrant up 时,它无论如何都会开始下载最新的,但我也想要 php5.6...尝试下载和使用链接的 v2.1.8,它仍然做同样的事情?
    猜你喜欢
    • 2017-02-01
    • 2017-01-24
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 2016-03-09
    • 2022-08-20
    相关资源
    最近更新 更多