前段时间,把自己在Windows下用Zend Framework开发的一个网站放到Linux上(CentOS,LAMP环境已搭好),这个网站在Windows系统上跑的很欢,可是移到Linux上,除了首页能显示以外,其他链接均报以下错误:
An error occurred
Page not found
Exception information:
Message: Invalid controller specified (login)
Stack trace:
#0 /var/www/html/newriver/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /var/www/html/newriver/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 /var/www/html/newriver/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 /var/www/html/newriver/public/index.php(26): Zend_Application->run()
#4 {main}
Request Parameters:
array (
'controller' => 'login',
'action' => 'index',
'module' => 'default',
)
错误信息显示:指定的控制器(login)无效
于是乎,各种百度和各种Google不在话下,搜到很多解决办法,结果均不奏效,例如有一篇很好的文章(当然报错的原因不同,这位网友的讨论的原因似乎是路径问题):
http://blog.csdn.net/bloggongchang/article/details/7185752
折腾了半天,最后才发现问题所在,原来在Linux上,Zend Framework的控制器首字母必须大写,而Windows上的控制器大小写均能识别,把控制器文件的首字母(loginController改成LoginController,类名也改一下,哈哈)修改一下,F5,OK啦!具体原因有待进一步研究ZF代码,:)
总结一下——“一个大小写引发的血案”,:D