Laravel Composer 看到错误的 PHP 版本

新手上路,请多包涵

我正在尝试安装一个较旧的 Laravel 项目。

当我运行 composer install 我得到以下错误

This package requires php >=5.6.4 but your PHP version (5.5.35) does not satisfy that requirement.

当我跑

php -v

我得到以下结果

PHP 7.1.10 (cli) (built: Oct 12 2017 14:00:12) ( ZTS )

这是我的 composer.json 的内容

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "doctrine/dbal": "^2.6",
        "guzzlehttp/guzzle": "^6.3",
        "intervention/image": "^2.4",
        "intervention/imagecache": "^2.3",
        "laravel/framework": "5.4.*",
        "laravel/tinker": "~1.0",
        "laravelcollective/html": "^5.4",
        "maatwebsite/excel": "^2.1",
        "sentry/sentry-laravel": "^0.8.0",
        "spatie/laravel-glide": "^3.2",
        "spatie/laravel-permission": "^2.6",
        "spatie/laravel-pjax": "^1.3"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~5.7"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    }
}

这个项目怎么可能认为我正在运行 php 5.6?

谢谢你。

原文由 Miguel Stevens 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 647
2 个回答

我也遇到过这个问题。如果您不想更新所有作曲家包,您可以通过手动更改 composer.lock 文件并在 JSON 对象中的 platform > php 中写入您的实际 PHP 版本来解决此问题。

例子

...
"platform": {
    "php": "7.1"
}
...

Although it works, the most recommended way to do this would be deleting your composer.lock file, changing the platform > php version in composer.json and then executing composer install .

原文由 gd_silva 发布,翻译遵循 CC BY-SA 3.0 许可协议

我遇到了同样的问题,运行 valet isolate php@7.3 对我有用。

希望有帮助。

原文由 brazilsunshine 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题