Composer不会检测php7,而是使用5.6.如何设置CLI以使用php7

mar*_*npd 4 php laravel composer-php php-7

在我执行时php -v,它说它有php7

在此输入图像描述

但是当我尝试执行时 composer update

它的回应

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - This package requires php >=7.0.0 but your PHP version (5.6.33) does not satisfy that requirement.
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?注意:我不允许卸载以前版本的php

这是composer.json

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=7.0.0",
        "fideloper/proxy": "~3.3",
        "intervention/image": "^2.4",
        "laravel/framework": "5.5.*",
        "laravel/passport": "^v1",
        "laravel/tinker": "~1.0"
    },
    "require-dev": {
        "filp/whoops": "~2.0",
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~6.0"
    },
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Helpers/misc.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "extra": {
        "laravel": {
            "dont-discover": [
            ]
        }
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经试过了

composer update --ignore-platform-reqs
Run Code Online (Sandbox Code Playgroud)

但我仍然得到另一个错误,这又与上述问题有关.

Vee*_*dra 5

如问题中所述,您已经在系统上安装了两个版本的PHP,因为Laravel使用cli版本,您需要启用7.X并禁用5.X.

您可以通过以下命令实现这一点

$ sudo a2dismod php5.6 // disable the loaded version
$ sudo a2enmod php7.0 // enable the desired version
$ sudo service apache2 restart // restart apache to get it in action
Run Code Online (Sandbox Code Playgroud)

有关详细信息您可以使用以下命令安装不同版本的PHP

对于Apache

$ sudo apt install php5.6   [PHP 5.6]
$ sudo apt install php7.0   [PHP 7.0]
$ sudo apt install php7.1   [PHP 7.1]
Run Code Online (Sandbox Code Playgroud)

对于Ngix

$ sudo apt install php5.6-fpm   [PHP 5.6]
$ sudo apt install php7.0-fpm   [PHP 7.0]
$ sudo apt install php7.1-fpm   [PHP 7.1]
Run Code Online (Sandbox Code Playgroud)

要安装任何PHP模块,只需指定PHP版本并使用自动完成功能查看所有模块,如下所示.

------------ press Tab key for auto-completion ------------ 
$ sudo apt install php5.6 
$ sudo apt install php7.0 
$ sudo apt install php7.1 
Run Code Online (Sandbox Code Playgroud)

现在,您可以根据自己的要求安装大多数必需的PHP模块.

------------ Install PHP Modules ------------
$ sudo apt install php5.6-cli php5.6-xml php5.6-mysql 
$ sudo apt install php7.0-cli php7.0-xml php7.0-mysql 
$ sudo apt install php7.1-cli php7.1-xml php7.1-mysql 
Run Code Online (Sandbox Code Playgroud)