首页 > 解决方案 > 无法在现有项目上将 laravel 框架从 5.5 升级到 5.6 或 5.7

问题描述

我正在尝试将我的 laravel 项目框架从 5.5 升级到 5.7 但无法做到..

当我将 composerjson 要求更改为 laravel 升级文档并在项目终端上点击composer update时,它​​的输出如下:

composer update
Do not run Composer as root/super user! See https://getcomposer.org/root for details
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
    - Conclusion: don't install laravel/framework v5.6.39
    - Conclusion: don't install laravel/framework v5.6.38
    - Conclusion: don't install laravel/framework v5.6.37
    - Conclusion: don't install laravel/framework v5.6.36
    - Conclusion: don't install laravel/framework v5.6.35
    - Conclusion: don't install laravel/framework v5.6.34
    - Conclusion: don't install laravel/framework v5.6.33
    - Conclusion: don't install laravel/framework v5.6.32
    - Conclusion: don't install laravel/framework v5.6.31
    - Conclusion: don't install laravel/framework v5.6.30
    - Conclusion: don't install laravel/framework v5.6.29
    - Conclusion: don't install laravel/framework v5.6.28
    - Conclusion: don't install laravel/framework v5.6.27
    - Conclusion: don't install laravel/framework v5.6.26
    - Conclusion: don't install laravel/framework v5.6.25
    - Conclusion: don't install laravel/framework v5.6.24
    - Conclusion: don't install laravel/framework v5.6.23
    - Conclusion: don't install laravel/framework v5.6.22
    - Conclusion: don't install laravel/framework v5.6.21
    - Conclusion: don't install laravel/framework v5.6.20
    - Conclusion: don't install laravel/framework v5.6.19
    - Conclusion: don't install laravel/framework v5.6.18
    - Conclusion: don't install laravel/framework v5.6.17
    - Conclusion: don't install laravel/framework v5.6.16
    - Conclusion: don't install laravel/framework v5.6.15
    - Conclusion: don't install laravel/framework v5.6.14
    - Conclusion: don't install laravel/framework v5.6.13
    - Conclusion: don't install laravel/framework v5.6.12
    - Conclusion: don't install laravel/framework v5.6.11
    - Conclusion: don't install laravel/framework v5.6.10
    - Conclusion: don't install laravel/framework v5.6.9
    - Conclusion: don't install laravel/framework v5.6.8
    - Conclusion: don't install laravel/framework v5.6.7
    - Conclusion: don't install laravel/framework v5.6.6
    - Conclusion: don't install laravel/framework v5.6.5
    - Conclusion: don't install laravel/framework v5.6.4
    - Conclusion: don't install laravel/framework v5.6.3
    - Conclusion: don't install laravel/framework v5.6.2
    - Conclusion: don't install laravel/framework v5.6.1
    - cartalyst/stripe-laravel v7.0.0 requires illuminate/support 5.5.* -> satisfiable by laravel/framework[v5.5.45], illuminate/support[v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43, v5.5.44].
    - cartalyst/stripe-laravel v7.0.0 requires illuminate/support 5.5.* -> satisfiable by laravel/framework[v5.5.45], illuminate/support[v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43, v5.5.44].
    - Can only install one of: laravel/framework[v5.6.0, v5.5.45].
    - don't install illuminate/support v5.5.0|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.16|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.17|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.2|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.28|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.33|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.34|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.35|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.36|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.37|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.39|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.40|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.41|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.43|don't install laravel/framework v5.6.0
    - don't install illuminate/support v5.5.44|don't install laravel/framework v5.6.0
    - Installation request for laravel/framework 5.6.* -> satisfiable by laravel/framework[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.16, v5.6.17, v5.6.18, v5.6.19, v5.6.2, v5.6.20, v5.6.21, v5.6.22, v5.6.23, v5.6.24, v5.6.25, v5.6.26, v5.6.27, v5.6.28, v5.6.29, v5.6.3, v5.6.30, v5.6.31, v5.6.32, v5.6.33, v5.6.34, v5.6.35, v5.6.36, v5.6.37, v5.6.38, v5.6.39, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9].
    - Installation request for cartalyst/stripe-laravel 7.0.* -> satisfiable by cartalyst/stripe-laravel[v7.0.0].

这是我的 composer.json

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": "^7.1.3",
        "laravel/framework": "5.6.*",
        "cartalyst/stripe-laravel": "7.0.*",
        "spatie/laravel-activitylog": "^2.1.1",
        "yajra/laravel-datatables-oracle": "~8.0",
        "arcanedev/no-captcha": "^5.0"
    },
    "require-dev": {
        "filp/whoops": "~2.0",
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~7.0",
        "barryvdh/laravel-debugbar": "^3.0"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/",
            "App\\Helpers\\": "app/Helpers/"
        },
        "files": ["app/Helpers/functions.php"]
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "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"
    }
}

尝试了许多互联网上可用的方法,但仍然存在问题

只是想升级项目 laravel 以获得新功能..

有人知道吗?我该如何解决这个问题并继续使用新的 laravel ?

提前致谢。

标签: javascriptphplaravel

解决方案


注意:请先检查您的 PHP 版本以获取 laravel 所需的版本。

按照以下步骤为您的项目升级 laravel 框架的最佳方法

  1. 备份您的 composer.json 文件
  2. 从 composer.json 文件中删除所有第三方包或从 laravel git 存储库https://github.com/laravel/laravel获取最新的 composer.json
  3. 从 app.php 文件中注释所有第三方包服务提供商(对于 Laravel 5.5 以下的版本)
  4. 现在在终端中运行 composer update 命令
  5. 一旦 Laravel 更新完成。现在再次安装所有第三方软件包并在 app.php 文件中启用第三方服务提供商。

更新: 如果您尝试升级 laravel 5.5 及更高版本,请跳过第 3 步。同样对于 laravel 5.5 及更高版本,无需在第 5 步中启用第三方包服务提供商。

很高兴为您的项目更新 laravel。


推荐阅读