Homestead已安装PHP7,但我需要PHP5。

7
Homestead突然停止运行,所以我试图将其全部删除并重新安装,但结果不尽如人意。在糊里糊涂地解决了各种问题一天半后,我终于让Homestead“运行”起来了。但是出于我无法理解的原因,我的Homestead box现在正在运行PHP 7。
我按照指南进行安装时有安装PHP 7的可选选项,但我故意跳过它们,因为我们使用的是PHP 5。
我想不到该如何解决这个问题。我尝试过以下方法:
- 我已多次销毁和重新安装了box。 - 我已多次删除VirtualBox box并重新下载了它。 - 我尝试根据建议安装v0.3.3的box。(我也相应地更新了homestead.rb脚本。)在安装过程中某些东西失败了,报错信息是:php7.0-fpm: unrecognized service,配置好的站点返回502 Bad Gateway错误。 - 重新安装v.0.4.0后,它开始像我描述的那样“运行”(正常提供服务等),但是PHP 7。
搜索解决方法始终没有结果。
我只是一个笨前端开发人员。:) Laravel、Vagrant、Homestead,所有这些都让我感到很头疼。我只是想让它再次正常工作,这样我就可以回到我的实际工作了。如果您有任何建议或其他研究此问题的途径,我将不胜感激。

2
使用Vagrant的好处是它会下载一个已经安装了大部分软件的镜像。你可以尝试不同的镜像,https://atlas.hashicorp.com/boxes/search?utf8=%E2%9C%93&sort=&provider=&q=php 。或者你也可以通过ssh连接到你的虚拟机并在那里进行管理 ;) - E_p
2
为什么不直接使用php7呢?如果代码能够正常运行,那就使用它吧。相比php5,它有很大的改进。 - Jonathan Kuhn
@JonathanKuhn 在我的情况下,我必须处理一个遗留项目,我一直在尝试完成这个任务,但到目前为止没有成功。 - Marco Aurélio Deleu
2个回答

10

我也遇到过这个问题,解决方法是安装旧版本的Homestead box v0.3.3,并使用旧版本的Homestead安装程序。因此,我建议你删除当前版本的box v0.4.0和homestead文件夹,然后按照以下步骤操作:

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

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


我尝试了这个,当运行 vagrant up 时,它会搜索 0.4.0 的盒子,没有找到并开始下载。 - Marco Aurélio Deleu
1
删除您的盒子,尝试运行以下命令: $vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.3.3/providers/virtualbox.box - Getsuga
我知道这已经过时了,但是您是否曾尝试在vagrant box add 0.3.3之后下载最新的homestead?我已经将其全部下载完毕,然后运行vagrant up,它仍然开始下载最新版本,但我也想要php5.6...尝试下载并使用链接的v2.1.8,但仍然出现同样的问题? - Matthew Jonat

4

我曾遇到类似的问题,尝试将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 box。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接