Установка
Установка CakePHP может быть и сногсшибательно проста, как простое копирование в вашу корневую директорию на веб-сервере, так и максимально гибка и настраиваема, как вы пожелаете. В этом разделе мы охватим три варианта установки Cake: для программиста, для одного сайта и расширенную установку.
- Установка для программиста происходит быстро, URL-адрес включает имя каталога, в который установлен Cake, а так же отличается низкой безопасностью.
- Установка для одного сайта предполагает возможность установки прямо в корневую веб-директорию, отличается «чистым» URL-адресом и высокой безопасностью.
- Расширенная установка позволит вам разместить части CakePHP в разные папки разных дисков, а так же заставить работать несколько сайтов на одном ядре CakePHP.
Установка для программиста
Просто поместите распакованный архив с CakePHP внутрь вашей корневой директории (webroot). Например, если для вебсервера является корнем путь
/var/www/html, то файлы Cake должны располагаться таким образом:
- /var/www/html
- /cake
- /app
- /cake
- /docs
- /index.php
- /vendors
Чтобы увидеть как работает Cake, наберите в браузере
http://www.example.com/cake/.
Установка для работы одного сайта
Чтобы установить CakePHP таким образом — вам необходимо иметь права на изменение корневой веб-директории вашего сервера. Эти изменения приведут к тому что весь ваш сайт будет работать как единое CakePHP приложение.
При такой установке используется следующая схема расположения файлов:
- /path_to_cake_install/
- /app
- /webroot (эта директория будет выступать корнем для веб-сервера)
- /cake
- /docs
- /index.php
- /vendors
Если ваше приложение устанавливается на сервере Apache, то директиву
DocumentRoot необходимо установить следующим образом:
DocumentRoot /path_to_cake_install/app/webroot
Чтобы увидеть как работает Cake, наберите в браузере
http://www.example.com.
Расширенная установка
Может возникнуть ситуация, когда вам будет необходимо установить части CakePHP в разные директории, или даже на разные диски в системе. Это может быть связано с ограничениями хостинга или с тем, что вы хотите заставить работать несколько сайтов с одним ядром Cake.
Для начала вам необходимо узнать, что существуют три независимые части CakePHP:
- Библиотеки, формирующие ядро, расположены в /cake
- Код вашего приложения, расположенный в /app
- Веб-корень севера, находится в /app/webroot
Каждая из этих директорий может быть расположена в любом месте системы, за исключением
webroot, которая обязательно должна быть доступна с точки зрения директивы
Document Root. Можно вынести папку
webroot за пределы папки
app, вы потом расскажете системе где искать ее части.
Чтобы указать системе где хранятся ее части — надо немного изменить файл
/app/webroot/index.php. Есть три константы, значения которых нужно поменять:
ROOT,
APP_DIR и
CAKE_CORE_INCLUDE_PATH.
- ROOT — необходимо указать путь к вашему каталогу, который содержит каталог app.
- APP_DIR — указывается путь к app, включающий имя app директории
- CAKE_CORE_INCLUDE_PATH — указывается путь к папке cake, содержащей библиотеки CakePHP.
Давайте проверим вышеописанное на примере. Предположим, я захотел установить CakePHP следующим образом:
- Библиотеки помещу в каталог /usr/lib/cake.
- Моя webroot директоря будет размещаться тут /var/www/mysite/.
- Содержимое папки app я помещу сюда /home/me/mysite.
Учитывая все мои пожелания необходимо изменить файл
webroot/index.php (который в примере расположен в
/var/www/mysite/index.php) следующим образом:
if (!defined('ROOT')) {
define('ROOT', DS.'home'.DS.'me');
}
if (!defined('APP_DIR')) {
define ('APP_DIR', 'mysite');
}
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake');
}
/app/webroot/index.php (частично, с удаленными комментариями)
Рекомендуется использовать константу
DS вместо косой черты (
/) для разделения директорий. За счет этого у вас не возникнет проблем при переносе кода с одной операционной системы на другую.
Дополнительные пути
Если вам необходимо разделить части MVC архитектуры между несколькими приложениями на CakePHP, то вы можете в файле
bootstrap.php указать пути, по которым следует искать ваши Модели, Контроллеры или Отображения, а так же помогающие им Поведения, Компоненты и Помощники.
Вот несколько переменных, которые можно определить в файле
bootstrap.php для выполнения этой задачи:
$viewPaths = array();
$controllerPaths = array();
$modelPaths = array();
$helperPaths = array();
$componentPaths = array();
$behaviorPaths = array();
Элементами массива могут быть так же полные пути в файловой системе. Не забудьте поставить слеш в конце каждого пути.
Apache и mod_rewrite
Хотя CakePHP и настроен изначально таким образом чтобы работать сразу с
mod_rewrite — мы заметили что у некоторых пользователей не выходит получить красивые URL-адреса, и они ведут непримиримую борьбу с настройками. Вот несколько советов, которые помогут заставить работать все так, как вам бы того хотелось:
- Убедитесь что на сервере разрешено переопределение директив настройки при помощи файлов .htaccess. Для этого в файле httpd.conf, в разделе, определяющем ваш каталог на сервере, директива Allow Override должна быть установлена в значение All.
- Убедитесь, что вы редактируете httpd.conf, относящийся ко всему серверу, а не конкретному пользователя или сайту.
- Возможно, у вас просто отсутствует .htaccess файл. Такое могло произойти при загрузке архива Cake, т.к. некоторые системы считаю файлы, начинающиеся с точки, скрытыми и не копируют их. Попробуйте заново загрузить архив, если это ваш случай.
- Убедитесь, что происходит корректно загрузка модуля mod_rewrite. Для этого найдите строки LoadModule rewrite_module libexec/httpd/mod_rewrite.so и AddModule mod_rewrite.c в вашем httpd.conf.
- Если вы устанавливаете CakePHP в пользовательский каталог (вроде http://example.com/~username), то вам необходимо в вашем .htaccess файле добавить строку RewriteBase /myusername/.
Внимание, Огонь!
Хорошо, давайте посмотрим на CakePHP в действии. В зависимости от вашей установки наберите в браузере
http://example.com/ или
http://example.com/cake_install/. На текущий момент перед вами предстанет страница домашняя страница CakePHP с информацией о настройке базы данных и кеширования.
Поздравляем! Теперь вы готовы к созданию первого приложения на CakePHP!
<< Подготовка к установке |
Настройка >>