Intereting Posts
почему get_object_vars возвращает защищенные свойства? Проблема с кадрированием изображения из базы данных mysql с использованием PHP? Изображение отображается черным? Включает ли Google crawl / require файлы в PHP? Управление правилами корзины покупок Сделайте Youtube 360 ​​градусов видео на мобильных устройствах Включить те же заголовки и нижние колонтитулы в несколько html-файлов Рекурсивный массив структуры каталогов в PHP php – Как отслеживать страницы, посещаемые пользователями после выхода из моего сайта? Добавить другой класс в четные и нечетные divs PHP, ошибка проверки MySQL и поиск не работают? PHP: «… переменные могут передаваться по ссылке» в str_replace ()? Laravel 5: включить laravel-debugbar mysqli_query () ожидает как минимум 2 параметра, 1 задано в? Разработка безопасной стратегии входа и аутентификации в PHP значение инкремента внутри массива массивов (если ключ не существует, установите его в 1)

Как развернуть и запустить проект zend на сервере?

У меня возник вопрос о развертывании проекта Zend на сервере. На localhost я использовал виртуальный хост, чтобы установить корень документа в папку 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 (вероятно, впервые была ошибка при развертывании, поэтому она не работала).

Но у меня все еще есть проблемы с проектом. Когда я перехожу к контроллеру Auth:

 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()); ?> 

Solutions Collecting From Web of "Как развернуть и запустить проект zend на сервере?"

Просто скопируйте проект на свой сервер и установите указатель каталога домена в общую папку. В большинстве случаев это должно выполнять эту работу.

Другой подход – настроить файл vhost и установить корень документа . Это нужно, если вы хотите, чтобы проект zf был доступен с субдоменом.

Но это скорее вопрос конфигурации сервера.

Application.ini:

 [production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.modules = '' resources.frontController.params.displayExceptions = 1 resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/" resources.frontController.defaultControllerName = "home" resources.frontController.params.prefixDefaultModule = "1" //some db setup [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 

.htaccess:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] 

Надеюсь, вы не изменили файл index.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')); // 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();