Laravel5.8项目Composer1执行install提示psr/simple-cache未安装求助
问题:Laravel 5.8 + Composer 1 执行
composer install 报错 psr/simple-cache 未安装 我在Laravel 5.8版本的项目中必须使用Composer 1版本。执行composer install命令时,在InstalledVersions.php第159行出现如下错误:
Package
psr/simple-cacheis not installed
但psr/simple-cache实际已经存在于vendor目录中,我已删除vendor目录并尝试重新安装,问题仍未解决。该如何修复?
项目的composer.json配置如下:
{ "name": "laravel/laravel", "type": "project", "description": "The Laravel Framework.", "keywords": [ "framework", "laravel" ], "license": "MIT", "require": { "php": "^7.3", "ext-curl": "*", "ext-gd": "*", "ext-json": "*", "ext-mongodb": "^1.5", "ext-pcntl": "*", "ext-redis": "*", "barryvdh/laravel-cors": "^0.11.2", "barryvdh/laravel-debugbar": "^3.2", "bensampo/laravel-enum": "^1.16", "cybercog/laravel-optimus": "^3.3", "doctrine/dbal": "^2.6", "fideloper/proxy": "~4.0", "fzaninotto/faker": "~1.4", "gabrielelana/byte-units": "^0.5.0", "geoip2/geoip2": "^2.9", "google/apiclient": "^2.2", "guzzlehttp/guzzle": "*", "hmazter/laravel-schedule-list": "^1.0", "intervention/image": "^2.7", "jackiedo/timezonelist": "^5.0", "jenner/redis_sentinel": "^0.3.0", "jenssegers/agent": "^2.6", "jenssegers/mongodb": "3.5.*", "jenssegers/mongodb-sentry": "1.0.*", "jenssegers/mongodb-session": "1.2.*", "laravel/framework": "5.8.*", "laravel/horizon": "^2.1", "laravel/passport": "^7.0", "laravel/tinker": "^1.0", "lcobucci/jwt": "3.3.*", "league/flysystem-aws-s3-v3": "^1.0", "league/iso3166": "^2.1", "league/uri": "^5.3", "maatwebsite/excel": "^3.0", "martinlindhe/laravel-vue-i18n-generator": "^0.1.28", "monospice/laravel-redis-sentinel-drivers": "^2.4", "php-amqplib/php-amqplib": "^2.7", "phpseclib/mcrypt_compat": "^1.0", "pusher/pusher-php-server": "^3.0", "spatie/laravel-permission": "^2.9", "torann/geoip": "^1.0", "ytake/laravel-fluent-logger": "^3.1", "zircote/swagger-php": "^3.0" }, "require-dev": { "barryvdh/laravel-ide-helper": "^2.4", "beyondcode/laravel-dump-server": "^1.2", "filp/whoops": "^2.0", "mockery/mockery": "^1.0", "nunomaduro/collision": "^2.0", "phpunit/phpunit": "^7.0", "squizlabs/php_codesniffer": "^3.2", "themsaid/laravel-langman": "^1.3" }, "config": { "optimize-autoloader": true, "preferred-install": "dist", "sort-packages": true }, "extra": { "laravel": { "dont-discover": [] } }, "autoload": { "psr-4": { "App\\": "app/" }, "classmap": [ "database/seeds", "database/factories" ], "files": [ "app/Support/helpers.php" ] }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }, "minimum-stability": "dev", "prefer-stable": true, "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi" ], "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate --ansi" ] } }
修复方案
清理Composer缓存
执行命令清除缓存,避免旧缓存数据导致的识别问题:composer clear-cache明确指定
psr/simple-cache版本
在composer.json的require节点中添加psr/simple-cache的兼容版本约束(Laravel 5.8适配^1.0版本):"require": { // 其他依赖保持不变 "psr/simple-cache": "^1.0" }修改后重新执行
composer install重置依赖文件
删除composer.lock和vendor目录,重新安装依赖:rm composer.lock rm -rf vendor composer install临时关闭自动加载优化
修改composer.json的config部分,将optimize-autoloader设为false:"config": { "optimize-autoloader": false, "preferred-install": "dist", "sort-packages": true }安装完成后可以再改回
true排查PHP环境
确保PHP 7.3版本的扩展没有冲突,尤其是和缓存相关的扩展(如redis、mongodb)是否正常加载
内容的提问来源于stack exchange,提问作者Yeawon Kim
相关产品推荐
相关产品推荐

