当尝试在每个项目的安装中使用php-7版本的Laravel时,我在vagrant up期间看到了这个错误。
php5-fpm: unrecognized service
我已经尝试过vagrant destroy并重新安装了Vagrant,但是它仍然回到了这个错误。
当我在全球范围内使用宅基地的时候,我没有得到这个错误。
怎么解决这个问题?
发布于 2015-11-18 22:00:45
问题是,虽然box: laravel/homestead-7是在Homestead.yaml中正确设置的,但laravel/homestead的编写器依赖仍然使用php-5版本。这意味着vendor/laravel/homestead中的Vagrant的配置脚本是php-5的,而不是php-7的。
可以通过为编写器依赖使用laravel/homestead的特定分支来解决这个问题。
在composer.json中,为laravel/homestead添加一个自定义存储库
"repositories": [
{
"type": "git",
"url": "https://github.com/laravel/homestead"
}
]并要求php-7分支专门用于laravel/homestead。
"require-dev": {
"laravel/homestead": "dev-php-7"
}然后,composer update和重新配置Vagrant将修复这个问题。
更新
laravel/homestead现在默认拥有PHP7.0,旧的php-7分支不再存在。要解决此问题,只需通过laravel/homestead更新到composer.json的最新版本即可。
发布于 2016-01-07 02:11:33
为了快速解决问题,我发现这是拉拉的回答非常有用:
cd ~/Homestead && git pull && vagrant destroy && vagrant box update && vagrant up发布于 2016-02-08 14:17:58
再详细阐述一下“摧毁它并重建”的方法.我喜欢这样做,而不是像PHP5.6到PHP7那样在网络上浮动的本地宅基地升级说明--它不会花很长时间,而且当你完成的时候,一切都会感觉“更干净”。
(当然,如果您已经对php.ini或任何其他软件进行了更改,则需要再次执行这些操作。)
制备
mysqldump -u root -p [dbname] > [dbname]-backup.sql (默认的宅基地MySQL根pw是secret)。过程
vagrant halt (如果您还没有)vagrant destroy [VM id]添加ID是防止销毁错误框的预防措施。使用vagrant global-status获取框的列表;在第一列中使用7个字符的十六进制代码。git pull origin master上的~/Homestead (正如另一个答案所提到的,现在没有单独的PHP7分支)bash init.sh,但是它复制的文件都是模板,所以您也不能这样做并保留以前的版本。vagrant box add laravel/homestead (现在我们又回到了标准安装说明。这将需要大约10分钟的VDSL连接。如果您对文档感到困惑,下面是文件夹映射的一个示例:
folders:
- map: ~/Dropbox/websites-homestead
to: /home/vagrant/sites
sites:
- map: site1.app
to: /home/vagrant/sites/site1/public
- map: site2.app
to: /home/vagrant/sites/site2/public
databases:
- site1
- site2所以..。我的实际代码位于我的计算机上的~/Dropbox/websites/site1 1和/site2中,我已经将它们的共同父目录映射到VM上的/home/迷航/站点。Homestead将使用您所列出的名称创建空数据库。
vagrant up (这将提供它)vagrant sshcd sites (您应该能够看到您的代码)您现在应该能够这样做了:
$sudo service php7.0-fpm status
* php-fpm7.0 is running
$php -v
PHP 7.0.2-4+deb.sury.org~trusty+1 (cli) ( NTS )
[...]https://stackoverflow.com/questions/33791261
复制相似问题