Kohana для чайников. Инсталляция.

kohanaВсем привет! Давно не писал. И давно уже обещал заняться фреймворком Kohana, чему и собираюсь посвятить серию постов.

Как это ни прискорбно — но я полный чайник во всем, что касается Kohana, и поэтому буду писать, как для чайников, поэтапно проходя и фиксируя все, даже очень мелкие детали работы с ним.

Версия
————————-
Должен пояснить, что на данный момент существует стабильная и хорошо документированная версия 2.3.4 и предварительная, вся такая сырая и без документации, но перспективная 3.0.3. Между ними есть весьма существенная разница. И каждый нормальный программист на моём выбрал бы для изучения более новую версию, как более перспективную. Но скудость самой элементарной информации привёла меня к необходимости изучения обеих версий.

Инсталляция
————————-
Предполагается что на вашем веб-сервере установлен PHP>=5.2.3. Довольно суровое ограничение, но оно, надеюсь, того стоит.

Первый этап — скачать и распаковать содержимое архива в какую-нибудь папку вебсервера. Скачать свежую стабильную версию можно на официальном сайте. Поскольку Kohana3 пока не является стабильной, качать её нужно здесь

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

А попросит скорее всего открыть доступ на запись/чтение папки application/cache и application/logs. Ещё Kohana3 мне предложила установить таки mcrypt и cURL . После того как не будет показываться ошибок и все строчки будут зелёными, можно продолжать.

После этого можно удалять файл install.php из каталога установки. Установка Kohana2 на этом почти закончена. А Kohana3 осталось совсем немного настроить.

Базовая настройка Kohana3
————————-
Здесь разговор пойдёт не о тонком тюнинге, а о самых базовых настройках, без которых не мыслима работа с фреймворком.

Все нужные нам настройки находятся в application/bootstrap.php. Самое главное что нужно сделать — это установить значение переменной base_url в вызове функции Kohana::init, где нужно указать расположение папки kohana на вашем сервере. Например:

Kohana::init(array('base_url' => '/kohana/'));

Кроме того, раз уж мы снизошли до application/bootstrap.php, имеет смысл сразу установить часовой пояс и локаль:

date_default_timezone_set('Europe/Moscow');
setlocale(LC_ALL, 'ru_RU.utf-8');

Для начала этого достаточно. Можно считать, что инсталляция прошла успешно.

Базовая настройка Kohana2 (upd)
—————————
Kohana2 и без настройки будет работать, но несколько прихрамывая, а именно будут сломаны внутренние ссылки. А всё потому, что как и в Kohana 3, здесь тоже нужно прописать базовый URL в файле application/config/config.php

$config['site_domain'] = 'localhost/kohana/';

Теперь точно всё.

Немного зауми
————————-
На самом деле, когда все файлы фреймворка находятся в публично читаемом каталоге вебсервера — не очень хорошо. Правильные программисты делают несколько по-другому. Все файлы системы, модулей и даже конкретного приложения лучше поместить в каталог, по-дальше от глаз вездесущих пользователей, оставив наружу только index.php и, например .htaccess

В таком случае нужно подредактировать index.php и заменить код:

$application = 'application';
.....
$modules = 'modules';
.....
$system = 'system';

например на

$application = '../../../k3/application';
.....
$modules = '../../../k3/modules';
.....
$system = '../../../k3/system';

А ещё я настоятельно рекомендую переименовывать каталог application. Кроме того, что это повышает безопасность приложения, это ещё и позволяет нескольким приложениям (читай «сайтам») на одном хостинге использовать одну инсталляцию Kohana, а это существенно упрощает сопровождение и обновление.

Вот пока всё. =)
Постараюсь надолго не пропадать.

Kohana для чайников. Инсталляция.: 14 комментариев

  1. AngelOfFate

    а чем крута или примечательна эта CMS? для чего используется? есть ли какие-то свои фишки?

  2. altesack Автор записи

    Это не CMS, а php-фреймворк. Наподобие Codeigniter.

    Из плюсов — ожидаю функционал. Из минусов — слабая документация, по сравнению с CI.
    Или я что-то не понимаю.

  3. Dandr

    altesack пишет:

    Из минусов – слабая документация

    очень надеюсь, что в качестве документации можно будет использовать твой сайт)))

  4. Nayjest

    Даа, хорошая документация — это 50% успеха фреймворка, а здесь мы такого не наблюдаем да и ORM в Kohana слабенький, тогда уж сразу прикручивать Doctrine

  5. altesack Автор записи

    @ Nayjest:
    Про 50% — сказано в самую точку. Этой серией постов попробую хоть чуток облегчить ситуацию.

    Про ORM — ещё предстоит разбирательство :)

  6. Kim

    Важное замечание для пользователей, поставивших Kohana на Windowи которым надоело сообщение «Class controller_kohana does not exist»: файл «exampl.htaccess» надо переименовать в «.htaccess». Из-за касячности винды(в частности XP) делаеться это так: «exampl.htaccess» открывает в блокноте, выбираем «сохранить как» и меняем название на » .htaccess» (перед точкой пробел) тип файла переключаем на «все файлы». После нажатия сохранить появится новый файл, с тем же содержимым и нужным именем.

    P.s. Извините за флуд. Просто из-за отсутствия решения на русском языке, чуть не отказался от этого фреймворка.

  7. Almaron

    Вот решил освоить наконец кохану. Но сразу по этому руководству возник вопрос. Но сначала ситуауция.
    1. Установлен Денвер со всеми необходимыми расширениями. Для экспериментов с kohana создан хост koh3.ru, лежащий соответственно в webs/home/koh3.ru/www/ (webs — папка головная папка денвера).
    2. Выгружаю фреймворк в папку webs/home/koh3.ru/kohana/ (как был дан совет, чтобы скрыть все лишнее). Так вот теперь вопрос — что нужно вывести обратно в видимую часть и как изменить конфигурацию?

  8. Almaron

    Тогда получается при такой раскладке, если я вдобавок переименовал папку «application» в «apl», мне надо в index.php прописать $application = ‘../kohana/apl’; и аналогично для остальных, так?

  9. Almaron

    Благодарю покорно) Пошел дальше копать что и как. Вдруг все таки есть хоть сколько-нибудь толковая документация. Официальную доку читать человеку, не занимавшемуся ранее серьезным программированием с использованием php framework’ов все таки тяжеловато.

  10. Дмитрий

    @ Almaron:
    Это точно! Сам обучаю пару студентов и русской документации очень мало и понять на английском основные термины крайне сложно…

  11. trsteep

    прописал setlocale(LC_ALL, ‘ru_RU.utf-8′);
    но русский все равно квадратиками — в чем может быть беда?

Комментарии запрещены.