2010-12-10 6 views
0

アイデアが足りなくなってきています。これは深くて不思議なものです。Zend:devからprod-devに移植されたコントローラがprodの同一のコピーであるとき、コントローラのエラーが無効です!

私の開発サイトは、製品の99.9%同一のコピーです。 (DBパスワードは異なります)。私はdevのサイトに追加した

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... 

これらすべてのものはDEVに絶対にうまく動作します。

prodホストへのFTPファイル。 devと同じprodの全てのパスを使いました。 prodホスト上のすべてのものと一致する権限が変更されました。他のすべてのものと同じ所有者にChown'dする。

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', 
) 

皮肉なことに、コントローラ/アクション/モジュールの仕様は正確に正しいです。そして、さまざまなビットがすべて彼らがあるはずのものです。

これは、パラレルユニバースのように感じ始めています。

私はあなたが持っている可能性のある提案があれば大いに義務づけられます。

読んでいただきありがとうございます。

後でこのページ時につまずく何彼らにとって

答えて

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ではOKではないと思いますが、そうです。

ただし、これは拒否されます。 Linux上でマウントされ、ZendのはオーソドックスURLを主張している:

http://website/new-thing/actionname 

...少なくとも私が使用していキャメルケースコントローラのファイル名とクラス名のために。

今、私は猫を蹴るつもりです。

関連する問題