У меня вопрос по развертыванию проекта Zend на сервере. На локальном хосте я использовал виртуальный хост для установки корня документа в папку public / index.php.
- Как мне развернуть его сейчас?
Я скопировал весь свой проект на сервер, но он не работает, поскольку все мои пути неверны (так как все они настроены относительно общей папки).
- Что мне делать? Можно ли установить все мои пути относительно моего домашнего пути на сервере? Как я могу перенаправить свое приложение на любой контроллер в этой ситуации?
Или, может быть, мне просто нужно создать виртуальный хост на сервере, но у меня нет разрешения на это: /?
Мне нужны советы, спасибо
Application.ini:
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.view[] =
resources.db.isDefaultTableAdapter = true
resources.db.adapter = PDO_MYSQL
resources.db.params.charset = "utf8"
resources.db.params.host = HOST
resources.db.params.username = "p"
resources.db.params.password = "***"
resources.db.params.dbname = "p"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
Index.php:
<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
defined('DESTINATION_IMAGES') || define('DESTINATION_IMAGES', './usersImages/');
defined('TRUE_STORY_EMAIL') || define('TRUE_STORY_EMAIL', 'mmm@gmail.com');
defined('TRUE_STORY_NAME') || define('TRUE_STORY_NAME', 'True story team');
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
->run();
.htaccss:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
phpinfo ();
w Загруженные модули У меня есть mod_rewrite, поэтому, вероятно, он включен.
-----------------------------
-------- РЕДАКТИРОВАТЬ 04.05.2011 -----
Я снова развернул проект на сервере и установил RewriteBase / ~ user2 / Project2 / public
И теперь работает сопоставление URL (вероятно, в первый раз была ошибка, когда я развернул его, поэтому он не работал).
Но у меня все еще есть проблемы с проектом. Когда я иду к контроллеру аутентификации:
public function indexAction() {
// action body
$form = new Application_Form_Login();
$request = $this->getRequest();
if ($request->isPost()) {
if ($form->isValid($request->getPost())) {
try {
if ($this->_process($form->getValues())) {
$userDT = new Application_Model_DbTable_User();
$idUser = Zend_Auth::getInstance()->getIdentity()->id;
if ($userDT->isConfirmed($idUser)) {
$this->_helper->redirector->gotoRoute(
array(
'controller' => 'index',
'action' => 'index'
)
);
} else {
$form->setDescription('Your account is not confirmed!');
Zend_Auth::getInstance()->clearIdentity();
$this->_helper->redirector->gotoRoute(
array(
'controller' => 'Registration',
'action' => "step",
'idUser' => $idUser
)
);
}
} else {
$form->setDescription('There was an error. Try to log in once again please');
}
} catch (Exception $e) {
echo $e->getMessage();
}
}
}
$this->view->form = $form;
}
На странице я вижу только: «» и я не знаю, что это значит, так как я проверяю, что перенаправление в другом контроллере работает, что означает, что мой проект видит библиотеки Zend, поэтому я не могу понять, почему это не так создать форму в виде?
Вид:
<?php $this->headTitle('Login'); ?>
<h1>Login</h1>
<?php echo $this->form->setAction($this->url()); ?>