【问题标题】:Using Laravel on php 7.0在 php 7.0 上使用 Laravel
【发布时间】:2019-01-18 11:18:14
【问题描述】:

我已经安装了 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 了吗?

我正在通过 composer 安装。

有没有办法下载与 7.0 兼容的版本?

【问题讨论】:

  • 它说它支持PHP >= 7.0.0。最好假设它是正确的,而你所做的事情是错误的。再次尝试rm -rf vendor/composer dumpautoload; composer install。如果您遇到错误,请在您的问题中充分披露并用代码引号括起来。
  • composer create-project --prefer-dist laravel/laravel blog "5.5.*"
  • 从命令行运行php -v会得到什么?
  • "我已经安装了 PHP 5.5" 后面跟着 "我的服务器只能使用 PHP 7.0" 真的很混乱...你安装了 PHP 5.5 还是 Laravel 5.5?

标签: laravel laravel-5.5 php-7.0


【解决方案1】:

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

如果你有 PHP 7.0,你可以使用Laravel 5.5

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

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

【讨论】:

  • 不,抱歉,我使用的是 php 7.0.29
【解决方案2】:

问题可能是 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

【讨论】:

    【解决方案3】:

    这是 Symfony 翻译堆栈的问题,我暂时不得不禁用,我还降级了 carbon 包以使其工作,不知道为什么。它有一些php7.1代码。

    【讨论】:

      猜你喜欢
      • 2019-03-30
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      • 2018-11-03
      • 2018-11-10
      • 2016-12-06
      • 2017-10-14
      • 1970-01-01
      相关资源
      最近更新 更多