invalid contrller specified 错误分析及解决
今天部署项目时在开发环境正常的服务,在线上部署后报错
invalid contrller specified
打开错误日志,发现有个 mkdir Permission denied in ...
修改目录及文件权限为777解决。
chmod -R 777 code
之后查了下zend framework 源码。
public function isDispatchable(Zend_Controller_Request_Abstract $request) { $className = $this->getControllerClass($request); if (!$className) { return false; } if (class_exists($className, false)) { return true; } $fileSpec = $this->classToFilename($className); $dispatchDir = $this->getDispatchDirectory(); $test = $dispatchDir . DIRECTORY_SEPARATOR . $fileSpec; return Zend_Loader::isReadable($test); }
知道了如下几种错误会引发此异常。
- 从请求中未获取到控制器类名
- 控制器类文件不存在
- 控制器类文件无读取权限
解决方法:仔细检查请求路径,修改代码权限(修改为777进行测试)。
文字均为博主原创,转载请联系博主,谢谢!