在php 7.0上使用Laravel

时间:2018-08-10 19:55:21

标签: laravel laravel-5.5 php-7.0

我已经安装了Laravel 5.5,但遇到了同样的错误,文档说明如下:

  • PHP> = 7.0.0
  • OpenSSL PHP扩展
  • PDO PHP扩展
  • Mbstring PHP扩展
  • Tokenizer PHP扩展
  • XML PHP扩展

我跑了: $ php artisan --version` $ Laravel Framework 5.5.42

我收到此错误:

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_PARSE) Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE)

文档是否错误?我正在使用:https://laravel.com/docs/5.5/installation#installing-laravel 我的服务器只能使用PHP 7.0。不是7.1。无法再在7上运行Laravel吗?

我正在通过作曲家进行安装。

是否可以下载与7.0兼容的版本?

3 个答案:

答案 0 :(得分:1)

如果您使用的是PHP 5.5(实际上是5.5.9或更高版本),则应使用Laravel 5.2

如果您使用的是PHP 7.0,则可以使用Laravel 5.5

您提到的错误是因为您正在使用不支持PHP 7 Null合并运算符(??)的PHP 5.5,并且正在Laravel代码中的某处使用它。

正如您所说的服务器支持PHP 7.0一样,您的系统上可能安装了多个PHP版本。检查运行php --version的PHP版本。

答案 1 :(得分:0)

问题可能是PHP的命令行版本不同于PHP的Apache版本。运行php --version并确认您使用的是PHP 7.0.0或更高版本。

Laravel 5.5。*在PHP 7.0。*上运行没有问题。我目前有一个在PHP 7.0.15上运行Laravel 5.5.43的项目,并且不会发生此问题。

如果PHP的命令行版本不是最新的,或者您可以访问PHP的多个版本,则应与主机提供商联系以寻求帮助。您也许还可以运行类似于以下命令,以查看是否可以访问其他版本的PHP:

locate bin/php

以上内容可能使您对安装位置有所了解。例如,我看到安装了三个不同版本的PHP,但是默认版本(/usr/bin/php)是7.0.15:

/opt/cpanel/ea-php56/root/usr/bin/php
/opt/cpanel/ea-php70/root/usr/bin/php
/opt/cpanel/ea-php71/root/usr/bin/php
/usr/bin/php

答案 2 :(得分:0)

这是Symfony Translation堆栈的问题,我暂时必须禁用它,而且我已经降低了碳包装的等级以使其正常工作,不确定为什么。它具有一些php7.1代码。