Homestead安装了PHP7,但我需要PHP5

时间:2016-01-12 17:56:10

标签: php laravel vagrant homestead php-7

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

经过一天半的混乱,经历了各种各样的问题,我已经“跑了”。但是,由于我无法理解的原因,我的Homestead盒子现在运行PHP 7。

The instructions我正在关注安装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,所有这些都让我头疼。我只想让它重新开始工作,这样我才能回到实际的工作中去。任何建议或替代研究这个问题的途径都将受到赞赏。

2 个答案:

答案 0 :(得分:9)

我也经历过这个问题,我通过安装一个旧的宅基地v0.3.3解决了这个问题,并且我使用了旧版本的宅基安装程序,所以我建议你删除当前的盒子v0 .4.0并删除你的宅基文件夹,然后执行以下操作:

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

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

答案 1 :(得分: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框,则需要再次重复所有这些步骤。