php init报permission denied是因init文件缺少执行权限,需chmod +x init;windows下“找不到指定的程序”是php未加入path;“failed to open stream”多因environments目录缺失;交互卡住实为等待输入,可直接输1或用--env参数跳过。

php init 脚本没权限执行
Linux/macOS 下直接运行 php init 报错 Permission denied,本质是 init 文件本身没有可执行权限,不是 PHP 或 Yii2 的问题。
实操建议:
- 先确认当前目录下
init文件存在:ls -l init,看到权限列类似-rw-r--r--就说明确实没x - 加执行权限:
chmod +x init(仅需一次) - 之后就能正常跑:
php init,注意不是./init—— Yii2 的init是 PHP 脚本,靠php解释器驱动,不依赖文件自身可执行位
Windows 下 php init 报“找不到指定的程序”
错误信息通常是 'php' is not recognized as an internal or external command 或弹窗提示“找不到指定的程序”,说明系统 PATH 没包含 PHP 可执行路径。
实操建议:
- 在命令行输
where php(Win)或which php(macOS/Linux),看是否返回有效路径 - 如果没返回,去 PHP 安装目录(如
C:\php)把路径加进系统环境变量PATH - 重启终端再试;不要用双击
init.bat这类方式——Yii2 的初始化必须走php init,否则跳过交互式环境选择逻辑
init 执行后报错 “Failed to open stream: No such file or directory”
常见于运行 php init 后选了环境(如 Development),但脚本尝试复制 environments/dev/common/config/main-local.php.example 时失败,原因是 environments/ 目录结构不完整或被误删。
实操建议:
- 检查项目根目录是否存在
environments/文件夹;若为空或缺失,说明composer create-project --stability=dev yiisoft/yii2-app-advanced没跑完,或手动删过 - 别自己新建空文件夹补全——
environments/里的文件带占位符和模板逻辑,必须由 Composer 安装过程生成 - 重新执行
composer create-project --stability=dev yiisoft/yii2-app-advanced yii-application,确保下载完整 - 已有的项目想恢复?可临时克隆一份干净的 advanced 模板,把
environments/整个拷贝过来(注意别覆盖你改过的main-local.php)
init 交互卡在“Please select environment”不动
不是卡死,是脚本在等你键盘输入数字(1=Development,2=Production),但终端没显示提示文字,尤其在某些 IDE 内置终端或 Windows PowerShell 中容易误判为假死。
实操建议:
- 直接输入
1回车,看是否继续;如果回显Environment set to 'Development'就说明只是提示没刷出来 - 避免在 VS Code 的“集成终端”里跑
php init,它对 STDIN 处理不稳定;换系统原生终端(Terminal、cmd、PowerShell)更可靠 - 实在不行,跳过交互:用
php init --env=Development --overwrite=n,参数名必须严格是--env和--overwrite,拼错或用短横线会静默忽略
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











