Kohana: настройка

 

kohana logo

Сегодня хочу рассказать про базовую установку и настройку коханы версии 3. Кое что я уже писал, однако технологии не стоят на месте и определенным образом устаревают. Посему сегодня новый мануал.

Для начала идем на официальный сайт и скачиваем последнюю версию. На данные момент это 3.0.7.

После того как архив скачается его необходимо распаковать в корневую директорию сайта (веб-приложения). Вы конечно можете распаковывать его не в корень, однако в таком случае поправки в файле .htaccess будут иными.

Настроим .htaccess

  1. Добавляем опцию Options -Indexes, если она еще не добавлена. Стоит иметь ввиду, что подобная опция может уже стоять в настройках самого вебсервера. А может и не стоять. Поэтому для уверенности напишем ее.
  2. Проверить каталог установки (# InstallationDirectory). Если Вы ставили кохану в корень, то там должно быть написано

    # Installation Directory
    RewriteBase /
    

Настройка index.php

  1. При желании ядро системы, каталог system, может быть перемещен вне сайта (это может быть необходимо для обновлений, или например если у Вас несколько сайтов, а ядро фреймворка Вы хотите использовать одно). Аналогично можно перемещать папки application и modules. Однако если с каталогом system все ясно, с остальными я рекомендую Вам делать это только в том случае, если Вы понимаете что делаете.
  2. Если Вы что-то переместили – необходимо изменить переменные $system, $application и $modules на соответствующие пути.

Настройка application/bootstrap.php

Этот файл необходим для базовой настройки веб-приложения. В нем можно задавать различные конфигуационные параметры, определяющие работу всего приложения.

  1. Изменить значение date_default_timezone_set(‘Asia/Yekaterinburg’); на ту временную зону, которая Вам необходима (вот список доступных).
  2. Изменить значение setlocale(LC_ALL, ‘ru_RU.utf-8′); Обычно употребимая локаль в России – ru_RU.UTF-8. Если Вам по каким-то причинам нужна другая – Вы можете сделать это.

На этом базовая установка и настройка заканчивается. Далее Вы можете приниматься за разработку своего веб-приложения. Удачи Вам на этом пути!

Стоп не сработал? 0_0

 

Трейдеры шутят…

Стоп не сработал

Проблемка с postfix

   

На настроенной почтовой системе, которая работает уже достаточно давно в логах постоянно наблюдается примерно следующая вещь

postfix/smtpd[...]: sql_select option missing
postfix/smtpd[...]: auxpropfunc error no mechanism available

Поимке багов по логам несколько мешало, недавно нашел способ. Если пойти в папку /usr/local/lib/sasl2

$ pwd
 /usr/local/lib/sasl2
$ ls libsql.*
 libsql.a
 libsql.la
 libsql.so
 libsql.so.2

Эврика! Делаем бэкап. Дальше выполняем следующую последовательность команд. Учтите, что если Вы используете авторизацию SQL в постфиксе, то для Вас этот метод не сработает.

$ pwd
 /usr/local/lib/sasl2
$ mkdir ./deactivated.sql
$ mv libsql.* ./deactivated.sql
$ postfix reload

И вуаля – в лог лишнее более не пишется!

P.S. Также если ваш лог одолевает сообщение

postfix/smtpd[...]: OTP unavailable because can't read/write key database /etc/opiekeys: ...

и ОТР как таковой Вам не нужен, то подобные указанным выше действия надо проделать с библиотекой libotp

$ pwd
 /usr/local/lib/sasl2
$ mkdir ./deactivated.otp
$ mv libotp.* ./deactivated.otp
$ postfix reload

Установка red5 на FreeBSD 8.0

   

Считаю что Java у Вас уже установлена. В противном случае – это тема отдельной статьи, которую вскорости может быть напишу. У меня Java установлена тут

$ /usr/local/diablo-jdk1.6.0

Для сборки сервера red5 нам потребуется Apache Ant, который можно легко поставить из портов:

$ cd /usr/ports/devel/apache-ant
$ make install clean

Теперь нам нужны исходники red5, чекаутим их с официального сайта примерно следующим образом:

$ mkdir /home/red5
$ svn co http://red5.googlecode.com/svn/java/server/trunk /home/red5

Теперь соберем его

$ cd /home/red5
$ ant

Процесс на 2-3 минуты. Должны поставиться всякие там jar, а те которых нет, подкачаться и также поставиться. Создадим рабочую директорию Red5 и перенесем туда только что собраный сервер:

$ mkdir /usr/share/red5
$ cp -R /home/red5/dist/* /usr/share/red5

На всякий случай:

$ chmod 755 /usr/share/red5/red5.sh

Исправляем shell:

$ ee /usr/share/red5/red5.sh
 /bin/bash -> /bin/sh

Делаем пускач:

$ touch /usr/local/etc/rc.d/red5.sh
#!/bin/sh

RED5_DIR=/usr/share/red5
test -x $RED5_DIR/red5.sh || exit 5

case "$1" in
    start)
        cd "$RED5_DIR"
        "$RED5_DIR"/red5.sh &
        sleep 2
        ;;
    stop)
        echo Shutting down Red5
        killall java
        sleep 2
        ;;
    restart)
        $0 stop
        $0 start
        ;;
esac

Запускаем Red5 и проверяем открытость портов:

$ /usr/local/etc/rc.d/red5.sh start
$ netstat -ant
 ...
 tcp4       0      0 *.5080                 *.*                    LISTEN
 tcp4       0      0 *.1935                 *.*                    LISTEN
 tcp4       0      0 *.51724                *.*                    LISTEN
 tcp4       0      0 *.9999                 *.*                    LISTEN
 ...

Все гуд. Контрольный выстрел:

$ telnet name-server 5080 или http://name-server:5080

Вот вроде и все – сервер собран, установлен и запущен (дефолтные настройки). Вам осталось накрутить конфиги Red5 под свои нужды (не забываем после этого сделать /usr/local/etc/rc.d/red5.sh restart).

ЗЫ: Правда надо еще поправить пускач, чтобы он стартовал Red5 при старте системы. Ну это на досуге как-нибудь

Комментарии

mandarin80: 01.02.2011 в 19:42 установил, но не запускается, в чем может быть проблема?


MrDekk: 01.02.2011 в 23:09 Добрый день! Проблема может быть во многих вещах. Для того, чтобы я Вам мог подсказать по делу надо бы посмотреть логи.


Тайланд: 03.03.2011 в 00:05 У меня проблема в том, что red зависает, проблема решается только перезагрузкой, удалением файла red5.pid и запуском заново, что за фигня, кто знает?


MrDekk: 03.03.2011 в 18:14 Ну, вообще, выключать его правильно. Там есть скриптик, для Windows вроде stop.bat или shutdown.bat, для Unix: stop.sh или shutdown.sh – я не помню точно как называется. Если же это не помогает, то можно написать свой файлик, или скрипт запуска пополнить функцией анализа наличия pid и либо не делать дальше действий и просто сообщать, либо удалять его и проводить нормальный процесс запуска.

Java singleton

   

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

private static volatile NetworkController controller = null;

public static NetworkController getInstance( )
{
  if ( null == controller )
  {
    synchronized( NetworkController.class )
    {
      if ( null == controller )
      {
        controller = new NetworkController( );
      }
    }
  }

  return controller;
}

// only private constructor! because of singleton
private NetworkController( )
{
}