Composer无法找到配置文件问题求助(PHP新手)
我是PHP初学者,执行composer require symfonycasts/verify-email-bundle时出现错误:
Composer could not find the config file: C:... . To initialize a project, please create a composer.json file.
我已拥有composer.json文件,内容如下:
{ "name": "symfony/website-skeleton", "type": "project", "license": "MIT", "description": "A skeleton to start a new Symfony website", "minimum-stability": "stable", "prefer-stable": true, "require": { "php": ">=8.1", "ext-ctype": "*", "ext-iconv": "*", "doctrine/annotations": "*", "doctrine/dbal": "^3", "doctrine/doctrine-bundle": "^2.12", "doctrine/doctrine-migrations-bundle": "^3.3", "doctrine/orm": "^2.11", "phpdocumentor/reflection-docblock": "^5.4", "phpstan/phpdoc-parser": "^1.29", "symfony/asset": "6.1.*", "symfony/console": "6.1.*", "symfony/doctrine-messenger": "6.1.*", "symfony/dotenv": "6.1.*", "symfony/expression-language": "6.1.*", "symfony/flex": "^2", "symfony/form": "6.1.*", "symfony/framework-bundle": "6.1.*", "symfony/http-client": "6.1.*", "symfony/intl": "6.1.*", "symfony/mailer": "6.1.*", "symfony/mime": "6.1.*", "symfony/monolog-bundle": "^3.0", "symfony/notifier": "6.1.*", "symfony/process": "6.1.*", "symfony/property-access": "6.1.*", "symfony/property-info": "6.1.*", "symfony/runtime": "6.1.*", "symfony/security-bundle": "6.1.*", "symfony/serializer": "6.1.*", "symfony/string": "6.1.*", "symfony/translation": "6.1.*", "symfony/twig-bundle": "6.1.*", "symfony/validator": "6.1.*", "symfony/web-link": "6.1.*", "symfony/yaml": "6.1.*", "symfonycasts/verify-email-bundle": "^1.17", "twig/extra-bundle": "^2.12|^3.0", "twig/twig": "^2.12|^3.0" }, "require-dev": { "phpunit/phpunit": "^9.5", "symfony/browser-kit": "6.1.*", "symfony/css-selector": "6.1.*", "symfony/debug-bundle": "6.1.*", "symfony/maker-bundle": "^1.0", "symfony/phpunit-bridge": "^7.0", "symfony/stopwatch": "6.1.*", "symfony/web-profiler-bundle": "6.1.*" }, "config": { "allow-plugins": { "composer/package-versions-deprecated": true, "symfony/flex": true, "symfony/runtime": true }, "optimize-autoloader": true, "preferred-install": { "*": "dist" }, "sort-packages": true }, "autoload": { "psr-4": { "App\": "src/" } }, "autoload-dev": { "psr-4": { "App\\Tests": "tests/" } }, "replace": { "symfony/polyfill-ctype": "*", "symfony/polyfill-iconv": "*", "symfony/polyfill-php72": "*", "symfony/polyfill-php73": "*", "symfony/polyfill-php74": "*", "symfony/polyfill-php80": "*", "symfony/polyfill-php81": "*" }, "scripts": { "auto-scripts": { "cache:clear": "symfony-cmd", "assets:install %PUBLIC_DIR%": "symfony-cmd" }, "post-install-cmd": [ "@auto-scripts" ], "post-update-cmd": [ "@auto-scripts" ] }, "conflict": { "symfony/symfony": "*", "doctrine/orm": "2.12.0" }, "extra": { "symfony": { "allow-contrib": false, "require": "6.1.*" } } }
相关配置信息
- 项目文件夹及Composer文件夹中均存在composer.json
- 使用Composer版本2.7.4 2024-04-22 21:17:03,PHP版本8.3.6(C:\php7\php.exe)
- PHP与Composer已添加至系统及用户环境变量
- 在CMD中执行
composer show时,提示:Composer could not find the config file: C:\composer(BUT MY COMPOSER.JSON IS IN Composer FOLDER :( ) To initialize a project, please create a composer.json file
排查解决步骤
切换到项目根目录执行命令
Composer默认在当前工作目录查找composer.json。打开CMD后,先用cd命令切换到你的项目文件夹根目录(比如cd D:\my-symfony-project),再执行composer require symfonycasts/verify-email-bundle。检查全局配置是否异常
执行composer config --list --global查看全局配置,确认是否有指定错误的composer.json路径。如果有异常配置,用composer config --global --unset <配置项>清除。直接指定项目目录执行命令
如果切换目录麻烦,可通过--working-dir参数指定项目路径:
composer --working-dir=你的项目绝对路径 require symfonycasts/verify-email-bundle
- 检查COMPOSER环境变量
在CMD中执行echo %COMPOSER%,如果输出了某个路径,检查该路径下的composer.json是否正确,若为错误设置,直接删除这个环境变量。
内容的提问来源于stack exchange,提问作者Victoria Zamana

