【问题标题】:Unable to upgrade laravel framework from 5.5 to 5.6 or 5.7 on an existing project无法在现有项目上将 laravel 框架从 5.5 升级到 5.6 或 5.7
【发布时间】:2019-02-27 06:56:53
【问题描述】:

我正在尝试将我的 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?

提前致谢。

【问题讨论】:

  • 你安装 PHP 7 了吗?
  • 禁用或删除 composer.json 文件中的所有包,只保留 laravel 包,然后更新安装所有包
  • 您至少需要 PHP 7.1.3 才能使用 Laravel 5.6 及更高版本。
  • @umefarooq 我尝试了你的方式..在升级脚本 php artisan 优化处理返回的 post-update-cmd 事件并返回错误代码 1 和运行 php artisan --版本 gor 此错误在 ProviderRepository.php 第 208 行:找不到类“Spatie\Activitylog\ActivitylogServiceProvider”
  • cartalyst/stripe-laravel v7.0.0 requires illuminate/support 5.5.*。您需要使用该库的更新版本,因为 7.0.0 版本需要 Laravel 5.5。 (请不要叫我“兄弟”)。

标签: javascript php laravel


【解决方案1】:

注意:请先检查您的 PHP 版本,了解 laravel 所需的版本。

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

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

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

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

【讨论】:

  • 我用过这个,它奏效了。在此之前尝试了很多没有用的东西。
【解决方案2】:

因为这条线

cartalyst/stripe-laravel v7.0.0 需要照明/支持 5.5

谢谢大家的帮助...

我只是更新 cartalyst 包和作曲家更新它的工作

结论:要更新你的 laravel 项目,记得升级你的 3rd 方包..

【讨论】:

  • 谢谢兄弟....我有旧的 3rd 方包(不再在我的应用程序中使用)...删除它后,我就可以升级 laravel 版本了..
【解决方案3】:

在运行 composer update 之前你必须先安装这些包,同时在你的 composer.json 文件中将 laravel 的版本更改为 5.7。

Ubundu 终端命令

sudo apt install php7.2 libapache2-mod-php7.2 php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-gd php7.2-xml php7.2-cli php7.2-zip
  • PHP >= 7.1.3
  • Ctype PHP 扩展
  • JSON PHP 扩展
  • BCMath PHP 扩展

删除供应商文件夹并尝试composer update

【讨论】:

    【解决方案4】:

    只需在 composer.json 文件中将 laravel 更改为 5.7.* 并运行 composer install 命令

    【讨论】:

      【解决方案5】:
      php -v
      

      如果低于 7 ,也许你有类似的别名

      php7 -v
      

      php72 -v
      

      许多服务器使用 php 别名

      【讨论】:

        猜你喜欢
        • 2019-02-06
        • 1970-01-01
        • 1970-01-01
        • 2018-07-13
        • 2019-08-17
        • 2015-10-11
        • 2013-12-08
        • 2018-09-27
        相关资源
        最近更新 更多