新手安装Symfony 6.4 LTS必须使用composer create-project symfony/skeleton:^6.4命令,禁用已废弃的symfony new和symfony/symfony元包,安装后须执行composer install、检查.env中APP_ENV与APP_DEBUG一致性,并运行cache:clear和about命令验证环境。

新手下载 Symfony 6.4 LTS 必须绕开已被弃用的 symfony new 命令、不能直接 require symfony/symfony 元包、也不能盲目拉 latest 或 dev-main 分支,否则项目连 bin/console 都无法执行,报错 Class 'App\Kernel' not found 就说明骨架根本没生成。
确认 PHP 和 Composer 环境是否达标
打开终端,逐条运行以下命令,全部通过才算合格:
php -v → 输出必须为 【PHP 8.2 或更高版本】,注意是命令行输出,不是网页 phpinfo;低版本会触发 Flex 加载失败或 YAML 解析异常。
php -m | grep -E "(intl|mbstring|xml|curl|fileinfo)" → 五个扩展缺一不可,其中 intl 最常被漏装,macOS 用户用 brew install php@8.2-intl 补全,Ubuntu 用户需 apt install php8.2-intl。
composer -v → 有版本号即 OK;国内用户必须提前设镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,否则 create-project 极易卡在 downloading symfony/flex。
选对初始化命令和模板
只用这一条命令创建 6.4 LTS 项目:
composer create-project symfony/skeleton:^6.4 myapp --stability=stable --no-interaction
这条命令拉的是官方维护的 skeleton,含 bin/console、public/index.php、.env、自动加载配置,且强制锁定在 6.4.x 的稳定小版本(如 6.4.12),不会漂移到 6.5-alpha。
绝对不要用:
symfony new myapp → 该命令来自已废弃的 Symfony CLI 工具(6.2+ 被标记 deprecated),运行就报 command not found: symfony。
composer require symfony/symfony → 自 Symfony 4 起该元包已移除,强行安装会导致依赖冲突,且不生成 src/、不注册 App\Kernel、php bin/console 直接崩溃。
composer create-project symfony/website-skeleton myapp → 它默认拉最新版(可能是 7.3-dev),不是 LTS;若坚持要带 Twig/Doctrine 的完整堆栈,必须加版本约束:composer create-project symfony/website-skeleton:^6.4 myapp --stability=stable。
安装后三件不能跳的事
① 必须再跑一次 composer install
即使 create-project 过程中已自动执行过,也必须手动再运行一次。这一步会触发 Flex recipes 注入(比如生成 config/packages/twig.yaml)、完成 vendor/autoload.php 注册、初始化目录权限——跳过就收不到任何错误提示,但后续 make:controller、cache:clear 全部报错。
② 立刻检查 .env 文件
打开项目根目录下的 .env,确认 APP_ENV=dev(开发阶段)或 APP_ENV=prod(上线前),【APP_DEBUG 必须与 APP_ENV 同步:dev 环境下 APP_DEBUG=1,prod 下必须为 0】。写反会导致 Web Profiler 工具栏消失、日志不输出、甚至路由缓存失效。
③ 清空缓存并验证环境
运行 php bin/console cache:clear → 成功则说明 Kernel 加载正常;再运行 php bin/console about → 输出中必须同时出现 Flex: enabled 和 Environment: dev,缺一即表示骨架未正确初始化。


















