Zend: недопустимая ошибка контроллера, когда контроллер перенесен с dev на prod - dev является идентичной копией prod! - PullRequest
0 голосов
/ 10 декабря 2010

У меня заканчиваются идеи - так что это либо глубоко и загадочно, либо действительно очевидно.

Мой сайт разработчика на 99,9% идентичен копии продукта. (Пароли БД разные).

Я добавил на сайт разработчика:

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.

FTP-файлы к хосту prod. Использовал все те же пути на prod, что и dev. Изменены разрешения, чтобы соответствовать всему остальному на хосте prod. Chown'd тому же владельцу, что и все остальное на хосте prod.

перезапустил Apache на хосте prod.

Я получаю сообщение об ошибке:

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 голосов
/ 11 декабря 2010

Для них то, что натыкается на эту страницу позже ...

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

Это была разница в том, как Windows и Linux обрабатывают регистр символов в именах файлов, и в том, как это чертовски эффективно с помощью функции загрузки / маршрутизации / отправки страниц Zend в Windows.

Обратите внимание, что имя файла контроллера - NewThingController.php, а имя класса - MYMODULENAME_NewThingController.(Zend Framework 1.11.1)

Я пытался перейти на страницу по адресу:

http://website/NewThing/actionname

Это просто замечательно и замечательно при установке Zend для WindowsXP / Apache и работает,Однако в Ubuntu Linux он терпит неудачу - и можно предположить, что любой другой Linux / Unix.

Строго говоря, я не думаю, что это должно быть хорошо в Windows, но это так.

В Linuxоднако, это отклонено.Установленный в Linux, Zend настаивает на ортодоксальном URL:

http://website/new-thing/actionname

... по крайней мере для используемых в FileName и ClassName контроллеров CamelCase.

Теперь я собираюсь пнутькошка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...