【问题标题】:Composer throws PHP Fatal error: Interface 'Monolog\ResettableInterface' not found when deployingComposer 抛出 PHP 致命错误:部署时未找到接口“Monolog\ResettableInterface”
【发布时间】:2019-07-21 20:27:23
【问题描述】:

这是我的 composer.json 文件:

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "php": ">=7.0.0",
    "laravel/framework": "5.1.*",
    "illuminate/support": "5.1.*",
    "laravelcollective/html": "^5.1.9",
    "twilio/sdk": "^5.4.2",
    "monolog/monolog": "1.11.*",
    "maatwebsite/excel": "^2.1.8",
    "fideloper/proxy": "^3.3.4",
    "sentry/sentry": "^1.0",
    "barryvdh/laravel-dompdf": "^0.7",
    "dompdf/dompdf": "0.7.0 as 0.6.2",
    "phenx/php-font-lib": "0.4 as 0.2.2"
},
"require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~4.0",
    "phpspec/phpspec": "~2.1"
},
"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
"autoload-dev": {
    "classmap": [
        "tests/TestCase.php"
    ]
},
"scripts": {
    "post-install-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "pre-update-cmd": [
        "php artisan clear-compiled"
    ],
    "post-update-cmd": [
        "php artisan optimize"
    ],
    "post-root-package-install": [
        "php -r \"copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ]
},
"config": {
    "preferred-install": "dist"
}
}

我有一个运行良好的本地版本,但是当我尝试部署到我们的服务器时,我得到了

PHP Fatal error:  Interface 'Monolog\ResettableInterface' not found in /var/www/html/vendor/monolog/monolog/src/Monolog/Logger.php on line 28 Script php artisan clear-compiled handling the post-install-cmd event returned with error code 255

我到处寻找,我发现的唯一修复是手动下载并添加 ResettableInterface.php 并将其放在独白供应商目录中,但我不能这样做,因为它已安装然后由部署脚本自动测试如果它失败了,它就不会部署,所以我没有机会这样做。我该怎么办?

【问题讨论】:

  • 你运行的是composer install还是composer update
  • 作曲家安装 --verbose --prefer-dist --no-progress --no-interaction --no-dev --optimize-autoloader
  • 它从 git 拉一个全新的站点安装,然后运行依赖项的安装
  • 在这种情况下,您现有的作曲家锁定文件可能有一些不匹配的依赖项。您可以尝试再次运行composer update,提交新的锁定文件,然后重新部署以查看是否可以解决丢失的类

标签: php laravel composer-php monolog vendor


【解决方案1】:

尝试删除或重命名供应商文件夹和 Composer.lock 文件。现在运行 composer install 。这将创建带有所有新依赖项的供应商文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 2019-10-09
    • 2019-05-06
    相关资源
    最近更新 更多