【发布时间】: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