跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Yii2安装后初始化报错怎么办_php init脚本执行权限设置【操作】

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 的问题。 实操建议: 立即学习 “ PHP免费学习笔记(深入) ”; 先确认当前目录下
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 可执行路径。 实操建议: 立即学习 “ 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/
目录结构不完整或被误删。 WOC-YII开源站群管理系统1.3 WOC-YII是rschome.com基于yii framework 1.1.8框架所开发的一款开源简易站群管理系统。它的功能与WOC完全一样。目前版本为V1.3,新版本正在开发中,同时欢迎大家参与到开发中来! WOC-YII 1.3在1.2的基础上优化了登录系统(密码加密),优化了权限控制系统,新增seo管理功能,新增自动安装向导! 程序框架:yiiframework1.1.8 配置文件:p 下载 实操建议: 立即学习 “ PHP免费学习笔记(深入) ”; 检查项目根目录是否存在
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 中容易误判为假死。 实操建议: 立即学习 “ PHP免费学习笔记(深入) ”; 直接输入
1
回车,看是否继续;如果回显
Environment set to 'Development'
就说明只是提示没刷出来 避免在 VS Code 的“集成终端”里跑
php init
,它对 STDIN 处理不稳定;换系统原生终端(Terminal、cmd、PowerShell)更可靠 实在不行,跳过交互:用
php init --env=Development --overwrite=n
,参数名必须严格是
--env
和
--overwrite
,拼错或用短横线会静默忽略 实际操作中,最常被忽略的是:init 不是“安装后自动运行”的步骤,它是独立的手动触发动作;很多人以为 composer 安装完就万事大吉,结果第一次访问页面报 500,回头才想起漏了这步。

相关文章