Yii2部署至Cpanel Linux虚拟主机后出现ViewNotFoundException求助
解决Yii2部署到Linux共享主机后视图文件找不到的问题
1. 排查大小写匹配问题
Windows系统文件名不区分大小写,但Linux是严格大小写敏感的,这是最常见的原因:
- 检查
frontend/views/下的目录名是否为全小写的user-profile,而非User-Profile或其他大小写组合 - 确认
user-profile目录下是否存在全小写的create.php,而非Create.php - 核对
UserProfileController.php第91行的render('create', ...)调用,确保视图名称大小写与文件完全一致
2. 确认文件完整上传
通过Cpanel文件管理器或FTP工具,直接查看/home/z5f2mu8pem8k/public_html/frontend/views/user-profile/目录:
- 确认
create.php文件确实存在,避免因FTP上传中断、文件遗漏导致的问题 - 若文件缺失,重新上传该文件及所在目录的所有内容
3. 调整文件/目录权限
Linux主机需要确保Web服务器拥有读取视图文件的权限:
- 将视图目录权限设置为
755,文件权限设置为644,可通过Cpanel文件管理器修改,或执行SSH命令:chmod -R 755 /home/z5f2mu8pem8k/public_html/frontend/views/ chmod 644 /home/z5f2mu8pem8k/public_html/frontend/views/user-profile/create.php
4. 检查控制器视图调用逻辑
打开frontend/controllers/UserProfileController.php第91行:
- 若调用当前控制器视图,确保仅传入视图名称
render('create', $data),不要带错误路径 - 若调用跨控制器视图,使用完整别名路径且保证大小写匹配,比如
render('@frontend/views/user-profile/create', $data)
5. 清除Yii2缓存
部署后本地缓存的路径信息可能导致异常,需清除运行时缓存:
- 删除
runtime目录下的所有文件(保留目录本身),可通过Cpanel文件管理器操作,或执行SSH命令:rm -rf /home/z5f2mu8pem8k/public_html/frontend/runtime/* rm -rf /home/z5f2mu8pem8k/public_html/backend/runtime/*
内容的提问来源于stack exchange,提问作者Beelal
相关产品推荐
相关产品推荐

