Page contents

Развертывание

Как только ваше приложение готово, или даже до того, вы захотите развернуть его на production-сервере. Есть несколько вещей, которые вы должны сделать при развертывании CakePHP приложения.

Установите document root

Правильная установка document root для вашего приложения - это важный шаг для обеспечения безопасности вашего кода. Используя приложения, написанные с помощью CakePHP, убедитесь, что document root вашего виртуального хоста ведет в app/webroot. В этом случае файлы содержащие логику или настройки не будут доступны через URL. Настройка document root различается для разных серверов. Смотрите /installation/advanced-installation для конкретных серверов.

Настройте core.php

Очень важным моментом для production-сервера является настройка core.php, особенно значение debug. Установка debug = 0 отключает большое количество функций, необходимых при разработке, которые ни в коем случае не должны попасть на production-сервер. Отключение отладки меняет следующее:

  • Отладочные сообщения, созданные с помощью pr() и debug() отключаются и не выводятся на экран.
  • Кеш ядра CakePHP обновляется каждые 99 лет, вместо 10 секунд, как для разработки (эти числа настраиваются в core.php).
  • Представления для ошибок менее информативны и содержат только обобщенные сообщения об ошибках.
  • Ошибки не выводятся.
  • Трассирование стека исключений отключается.

В добавок к вышеперечисленному, многие плагины и приложения при разном значении debug ведут себя по-разному.

Несколько CakePHP приложений, использующих одно ядро

Есть несколько способов конфигурации приложений для совместного использования одного ядра CakePHP. Можно либо использовать PHP include_path, либо изменить константу CAKE_CORE_INCLUDE_PATH (webroot/index.php) во всех приложениях. Как правило использование include_path проще и надежнее. CakePHP устроен таким образом, чтобы учитывать include_path, потому его просто использовать.

В файле php.ini установите директиву, или добавьте в ней путь к ядру:

include_path = '.:/usr/share/php:/usr/share/cakephp-2.0/lib'

В этом примере подразумевается, что приложение работает на *nix сервере, а CakePHP находится в /usr/share/cakephp-2.0.