Zend:控制器从dev移植到prod时的控制器错误 - dev是prod的相同副本!

时间:2010-12-10 20:53:21

标签: zend-framework migration controller

我开始没有想法了 - 所以这要么深刻又神秘,要么真的非常明显。

我的开发网站是一个99.9%相同的prod副本。 (数据库密码不同)。

我已添加到开发网站:

1 controller in blah/contollers/NewThingController.php  
1 model in blah/models/NewThing.php  
a few new views in blah/views/scripts/newview1.phtml, newview2.phtml etc...  

所有这些事情在开发方面都非常好。

将FTP文件发送到prod主机。使用prod上的所有相同路径作为dev。更改权限以匹配prod主机上的所有其他内容。与prod主机上的其他所有者一起出现在同一所有者身上。

在prod主机上重启Apache。

我一直收到错误:

An error occurred
Page not found
Exception information:

Message: Invalid controller specified (NewThing)
Stack trace:

#0 /var/www/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /var/www/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 /var/www/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 /var/www/index.php(25): Zend_Application->run()
#4 {main}  

Request Parameters:

array (
  'controller' => 'NewThing',
  'action' => 'newview1',
  'module' => 'MYMODULENAME',
)  

具有讽刺意味的是,控制器/动作/模块规格完全正确。并且各种各样的位都应该是它们应该存在的位置。

这开始感觉像是一个平行的宇宙。

我非常感谢您提出的任何建议。

感谢阅读。

1 个答案:

答案 0 :(得分:0)

对于他们来说,以后会偶然发现这个页面......

!#!@ $ @%!#@! !!!

Windows和Linux如何处理文件名中的字符大小写,以及如何在Windows上使用Zend页面加载/路由/调度工具进行操作,这是不同的。

请注意,控制器文件名是NewThingController.php,类名是MYMODULENAME_NewThingController。 (Zend Framework 1.11.1)

我试图导航到地址处的页面:

http://website/NewThing/actionname

这在Zend的WindowsXP / Apache安装上很好用而且很有用。但它在Ubuntu Linux上失败了 - 人们可以假设任何其他Linux / Unix。

严格来说,我认为在Windows上不应该没问题,但确实如此。

然而,在Linux上,这被拒绝了。 Zend安装在Linux上,坚持使用正统的URL:

http://website/new-thing/actionname

...至少对于我正在使用的CamelCase控制器FileName和ClassName。

现在我要踢猫了。