symfony 6.4 lts 下载后必须立即验证 php ≥ 8.1、必需扩展(如 intl、mbstring 等)启用状态及 composer check-platform-reqs 合规性,再执行 php bin/console list、debug:container 和 cache:warmup 确认核心组件加载正常。

下载 Symfony 6.4 LTS 后必须立即验证 PHP 版本、扩展启用状态和 Composer 依赖完整性,否则后续命令(如 php bin/console cache:clear)会因环境不达标而中断,且错误信息模糊难定位。
检查 PHP 版本与必需扩展
打开终端,进入项目根目录后执行:
php -v
输出必须显示 PHP 版本 ≥ 8.1 —— Symfony 6.4 【不兼容 PHP 8.0 及以下】,哪怕只差小版本也会导致 Symfony\Component\HttpKernel\Kernel::getProjectDir() 报错。
接着运行:
php -m | grep -E "mbstring|xml|ctype|json|filter|hash|session|tokenizer|zip|intl"
确保所有列出的扩展都出现在输出中。特别注意 intl 扩展:若缺失,cache:warmup 会静默失败,但 cache:clear 看似成功,实际缓存目录为空,请求直接 500。
验证 Composer 平台要求是否满足
运行:
composer check-platform-reqs
该命令会逐项比对 composer.json 中声明的 PHP 版本、扩展和扩展版本约束。只要有一行标红(显示 MISSING 或 INCOMPATIBLE),就说明环境未达标,不能继续下一步。
常见陷阱:即使 php -m 显示 pdo_mysql,但若 composer check-platform-reqs 提示 ext-pdo_mysql 缺失,说明当前 CLI 使用的 php.ini 与 Web Server 加载的不是同一份配置 —— 此时需确认 php --ini 输出的配置路径,并手动启用对应扩展。
确认核心组件已正确加载并响应
第一步:执行 php bin/console list,观察是否列出完整命令列表(含 cache:*、doctrine:* 等),而非报错 Class 'App\Kernel' not found。
第二步:运行 php bin/console debug:container --parameter=kernel.environment,输出应为 dev 或 prod —— 若提示 The parameter "kernel.environment" must be defined,说明 .env 文件被意外删除或重命名,需立刻恢复。
第三步:强制清空并重建缓存:
rm -rf var/cache/* → php bin/console cache:warmup
这一步会触发容器编译。如果卡在 Compiling container 超过 10 秒,大概率是 opcache.enable=1 但 opcache.save_comments=1 未开启(PHP 8.1+ 必需),需修改 php.ini 并重启 PHP-FPM 或 CLI 进程。











