拉威尔5.6+;cPanel+;编写器错误:即使安装了7.2,也使用了错误的PHP

拉威尔5.6+;cPanel+;编写器错误:即使安装了7.2,也使用了错误的PHP,php,cpanel,php-5.6,laravel-5.6,php-7.2,Php,Cpanel,Php 5.6,Laravel 5.6,Php 7.2,我试图在cPanel沙箱上安装Laravel5.6,我发现composer在尝试使用PHP5.6时出现了奇怪的行为,即使安装了7.2。详情如下: # composer --version Composer version 1.1.1 2016-05-17 12:25:44 php中的命令不返回任何内容。但是当我使用alias时,我会得到以下信息: alias php='/usr/local/bin/ea-php72' 如果我运行php-v,我会明白 # php -v PHP 7.2.4 (c

我试图在cPanel沙箱上安装Laravel5.6,我发现composer在尝试使用PHP5.6时出现了奇怪的行为,即使安装了7.2。详情如下:

# composer --version
Composer version 1.1.1 2016-05-17 12:25:44
php中的命令
不返回任何内容。但是当我使用alias时,我会得到以下信息:

alias php='/usr/local/bin/ea-php72'
如果我运行php-v,我会明白

# php -v
PHP 7.2.4 (cli) (built: Apr  4 2018 00:56:46) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
我将假设它正在工作。正如你所知,我在cPanel上运行Laravel的经验很少,但我离题了

以下是错误:

# composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - This package requires php ^7.1.3 but your PHP version (5.6.35) does not satisfy that requirement.
  Problem 2
    - laravel/framework v5.6.9 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.8 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.7 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.6 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.5 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.4 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.3 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.2 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.15 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.14 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.13 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.12 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.11 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.10 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.1 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.0 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework 5.6.x-dev requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - laravel/framework v5.6.15 requires php ^7.1.3 -> your PHP version (5.6.35) does not satisfy that requirement.
    - Installation request for laravel/framework 5.6.* -> satisfiable by laravel/framework[5.6.x-dev, v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.2, v5.6.3, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9].
现在,我确实找到了一个线程,上面写着向composer.json添加一个平台:

"platform": {
    "php": "7.1.3"
}
这确实让我安装了我的供应商软件包,但这显然不是一个解决方案,因为你只是在伪装平台(我认为)。当真正使用php7时,我在null coalescing操作符上遇到以下错误,这是php7的一个特性,因此它仍然在尝试使用php5.6

> Illuminate\Foundation\ComposerScripts::postAutoloadDump

Parse error: syntax error, unexpected '?' in /public_html/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 233
补充说明:

phpinfo() - PHP Version 7.2.4
php.ini - /opt/cpanel/ea-php72/root/etc
core PHP Version 7.2.4

# /usr/bin/env php -v
ea-php-cli Copyright 2017 cPanel, Inc.
PHP 5.6.35 (cli) (built: Apr  4 2018 00:55:31)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
我需要的composer.json如下所示:

"require": {
    "php": "^7.1.3",
    "edujugon/laravel-google-ads": "^1.4",
    "fideloper/proxy": "^4.0",
    "laravel/framework": "5.6.*",
    "laravel/tinker": "^1.0"
}

关于如何解决这个问题有什么想法吗?

composer.json文件中提到的php版本是什么?确保它看起来像这样

 "require": {
        "php": "^7.1.3",
        "darkaonline/l5-swagger": "5.6.*",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "5.6.*",
        "laravel/tinker": "^1.0"
    },
或者您可以尝试以下解决方案之一 1) 尝试在服务器上重新安装php 2) 您可以像这样忽略依赖项
composer安装——忽略平台请求
s

composer.json文件中提到的php版本是什么?确保它看起来像这样

 "require": {
        "php": "^7.1.3",
        "darkaonline/l5-swagger": "5.6.*",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "5.6.*",
        "laravel/tinker": "^1.0"
    },
或者您可以尝试以下解决方案之一 1) 尝试在服务器上重新安装php 2) 您可以像这样忽略依赖项
composer安装——忽略平台请求
s

,因为最终的解决方案是,我们需要将默认服务器范围的php版本更改为7.2,我们也这样做了。由于我们有一个共享主机设置,我们将所有以前的现有站点本地默认设置为5.6,今后任何Laravel安装都将设置为7.2。不确定这是否是最好的解决方案,但它确实起到了作用。

结果是,我们需要将默认服务器范围的php版本更改为7.2,我们也这样做了。由于我们有一个共享主机设置,我们将所有以前的现有站点本地默认设置为5.6,今后任何Laravel安装都将设置为7.2。不确定这是否是最好的解决方案,但它确实起到了作用