创建Symfony骨架项目时提示无法读取.env文件的PathException错误
报错原因
报错核心是Windows环境下用Composer创建symfony/skeleton最小项目时,后置脚本cache:clear的执行时机早于.env环境文件的落盘步骤,触发Dotenv组件读取不存在文件的致命错误。
该问题和PHP环境是否满足Symfony运行要求无关:symfony new --demo创建演示项目不报错,是因为演示版脚手架在执行后置脚本前会提前写入.env文件,不会触发文件读取时序问题。
解决方法
按优先级从高到低可选择以下方案:
- 手动补全文件后重执行缓存清除
命令执行报错终止后,进入项目根目录,将自带的.env.example文件复制并重命名为.env,在项目根目录手动执行php bin/console cache:clear即可,后续项目运行无任何异常。 - 安装时跳过脚本后续手动初始化
创建项目时增加--no-scripts参数,跳过安装阶段的自动后置脚本执行,命令如下:
进入项目目录后,确认根目录存在composer create-project symfony/skeleton new_project --no-scripts.env文件(不存在则从.env.example复制),依次执行composer run-script post-create-project-cmd、php bin/console cache:clear即可完成项目初始化。 - 直接使用Symfony CLI创建常规项目
本地已安装Symfony CLI的前提下,直接用CLI命令创建非demo的常规项目,CLI会自动处理文件生成顺序,不会触发Composer脚本的时序bug:symfony new new_project
注:该问题属于Windows平台Composer 2.x搭配Symfony 6/7版本skeleton的偶发时序问题,本质是安装过程中文件IO延迟导致执行缓存清除命令时
.env尚未写入磁盘,不属于环境配置错误,无需调整PHP版本或修改php.ini配置。
内容的提问来源于stack exchange,提问作者johnny
相关产品推荐
相关产品推荐

