无法在生产环境中启动Laravel 5.4应用程序(PHP 5.6)

时间:2019-04-09 12:38:24

标签: php laravel

我在PHP 5.6.4服务器上安装了Laravel 5.4,但无法启动该应用程序。使用相同的配置在本地一切正常,但是在服务器上我收到此错误:

(1/1) FatalErrorException syntax error, unexpected '?', expecting variable (T_VARIABLE)
in PDOConnection.php line 24

服务器上的CLI版本是7.2,而phpinfo()显示5.6.40。该错误显示在需要数据库访问的页面上。没有数据库请求时,它可以正常工作。

谢谢:)

3 个答案:

答案 0 :(得分:2)

PDOConnection.phpdoctrine/dbal包中的文件,其line 24与PHP 5.4(使用?array)不兼容。

Laravel 5.4 doctrine/dbal~2.5中的has require-dev,但是在版本2.5中没有这样的问题(line 40)。

似乎您必须删除vendor文件夹并再次运行composer install,这将安装所需的依赖项。


已添加

@aynber指出,您的问题是使用PHP 7.2安装依赖项并在PHP 5.6上运行,因此在删除vendor文件夹之后并重新安装之前,应将其添加到composer.json

"config": {
    "platform": {
        "php": "5.6.40"
    }
}

Source

答案 1 :(得分:0)

确定要使用Laravel 5.4吗? Laravel 5.4 should be using doctrine/dbal@~2.5,其中there is only a comment on line 24。看来您所使用的版本至少是2.9,该版本使用的nullable types仅在PHP 7.1+中可用。

您的选择:

  1. 更新您的PHP版本
  2. 删除并重新安装laravel/framework@5.4

答案 2 :(得分:0)

感谢您的帮助,我已解决问题。

我用“ composer clearcache”清除了作曲家缓存,然后运行:

composer,返回了作曲者的路径

然后我跑了

php -d allow_url_fopen =关于COMPOSER_PATH_FROM_PREV_STEP更新

它更新了所有依赖项以与PHP5.6一起使用:)