“完全不支持REPL。回到简单的shell” - Laravel在尝试使用php artisan修补程序时出错

时间:2014-08-02 09:46:49

标签: laravel-4 wampserver command-line-interface

我的开发环境:

  • Windows 7 + WAMP
  • PHP版本:5.4.16

当我尝试使用php artisan tinker时 - 我的控制台给出了以下错误:

  

不支持REPL。回归简单的外壳

我为此搜索解决方案并找到了:

Full REPL not supported

但这对我帮助不大。我知道Boris默认支持laravel 4.1。 我可能会根据这个在php.ini上做一些更改。

  

如果tinker命令对您不起作用,则php.ini中的disable_functions设置很可能包含所需的pcntl_()函数。在你的php.ini中的这一行之前发表评论,这应该允许修补工作。

来源:http://laravel-recipes.com/recipes/280

但是当我打开我的php.ini文件时,disable_functions除此之外什么都不包含:

disable_functions =

该指令允许您出于安全原因禁用某些类。

它接收以逗号分隔的类名列表。这个指令是 ; NOT 受安全模式是开启还是关闭的影响。

http://php.net/disable-classes

这是我的WAMP问题吗?我错过了什么!

2 个答案:

答案 0 :(得分:1)

  

Boris In Tinker

     

php artisan tinker命令现在使用Boris REPL,如果您的系统支持它。必须安装readline>和pcntl PHP扩展才能使用此功能。如果您没有这些扩展名,请使用> 4.0中的shell。

来自Laravel文档: http://laravel.com/docs/releases

基本上,他们告诉你需要安装php55-pcntl和readline。

每次我尝试brew install php55-pcntl时,我都会

configure: error: Cannot find openSSL's <evp.h>

尝试运行它,看看你得到了什么。

更新:使用Laravel的Homestead环境

我完全放弃了尝试在XAMPP / WAMP / MAMP风格的localhost上运行它。

如果您转到快速入门文档并向下滚动到本地开发环境:

http://laravel.com/docs/quick#local-development-environment

它实际上建议您使用Laravel的自定义家园环境:

http://laravel.com/docs/homestead

阅读文档以进行安装并报告结果。它一直很适合我。

答案 1 :(得分:1)

缺少一个或多个readline posix和pcntl扩展名。您需要使用适当的配置选项编译PHP以启用它。

以下是说明:

readline http://www.php.net/manual/en/readline.installation.php
pcntl http://www.php.net/manual/en/pcntl.installation.php
posix http://www.php.net/manual/en/posix.installation.php

请注意,默认情况下会启用posix功能。