Проблемы с Zend Framework Path - PullRequest
       9

Проблемы с Zend Framework Path

2 голосов
/ 22 января 2010

All

Я просто пытаюсь просмотреть любую страницу, кроме экрана «Добро пожаловать в Zend Framework».

Я скачал проект из этого урока: http://framework.zend.com/docs/quickstart/create-a-form (Zend Framework Quickstart)

Насколько я могу судить, пути идут правильно. Я прочитал этот пост: http://www.johnmee.com/2008/11/zend-framework-quickstart-tutorial-deploy-to-a-subdirectory-instead-of-web-root/ Я думаю, что это может быть немного устаревшим, поскольку код начальной загрузки не такой, как он описывает.

У кого-нибудь есть идеи? Я думаю, что учебник, загружаемый с Zend, должен работать из коробки.

Резюме: http://localhost/ZendFrameworkQuickstart/public/ Дисплеи: Zend Welcome page

http://localhost/ZendFrameworkQuickstart/public/guestbook Дисплеи: 404

Спасибо!

UPDATE Физический путь к «общедоступному» каталогу: C: \ Zend \ Apache2 \ HTDOCS \ ZendFrameworkQuickstart \ общественность

URL, который я нажимаю в браузере: http://localhost/ZendFrameworkQuickstart/public/guestbook

.htaccess Содержание:

SetEnv APPLICATION_ENV разработка

RewriteEngine On

RewriteCond% {REQUEST_FILENAME} -s [ИЛИ]

RewriteCond% {REQUEST_FILENAME} -l [ИЛИ]

RewriteCond% {REQUEST_FILENAME} -d

RewriteRule ^. * $ - [NC, L]

RewriteRule ^. * $ /ZendFrameworkQuickstart/Public/index.php [NC, L]

ОБНОВЛЕНИЕ: измененные строки в файлах

.htaccess RewriteRule ^. * $ /ZendFrameworkQuickstart/public/index.php [NC, L]

application.ini resources.frontController.baseUrl = "/ ZendFrameworkQuickstart / public"

общественности / index.php сообщение об ошибке (E_ALL | E_STRICT); ini_set ('display_errors', 1);

Ответы [ 2 ]

1 голос
/ 22 января 2010

Наконец-то разобрался. В файле httpd.conf для Apache измените каждый экземпляр «AllowOverride None» на «AllowOverride All».

Я не уверен, почему у Zend не было этой настройки, так как моя установка Zend Framework установила Apache. После этого изменения Quickstart работал как есть (и даже не должен был находиться в корне).

Спасибо за помощь!

0 голосов
/ 22 января 2010

Добавление к комментарию Джейкоба: я думаю, что условия и правила mod_rewrite в файле .htaccess для приложения Quickstart предполагают, что все будет относительно корня домена, и, в частности, переписывает все в корень домена (/index.php для быть конкретным).

Так что либо:

  • настроить условия и правила перезаписи в .htaccess или
  • позволяет корневому каталогу (виртуального) хоста указывать непосредственно на общую папку приложения Quickstart.

Кроме того, убедитесь, что на вашем сервере включен mod_rewrite (при условии, что у вас есть сервер apache).

EDIT Поскольку ваше приложение не запускается из корневого каталога вашего сервера, вам, вероятно, все равно следует установить baseUrl где-нибудь в вашей начальной загрузке. С чем-то вроде:

$front = Zend_Controller_Front::getInstance();
$front->setBaseUrl( '/ZendFrameworkQuickstart/public' );

Но вы избавите себя от многих проблем, просто обойдя это, поместив свое приложение в корень вашего сервера, или позволив корню вашего сервера указывать на общую папку в httpd.conf, если любой из этих варианты доступны для вас.

Если вы сделаете это, не забудьте снова установить .htaccess в настройки по умолчанию.

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