Итак, прежде, чем чего-то делать с Red5, его нужно установить.
Есть два способа это сделать -- установить бинарный дистрибутив или собрать из сорцов.
Первый способ -- скачать один из скомпилированных релизов и развернуть его. На момент написания этих строк самая новая доступная версия 0.9.1 Final.
Скачиваем Tarball red5-0.9.1.tar.gz или ZIP red5-0.9.1.zip.
К сожалению, архив скачивается на медленной скорости и с частыми обрывами. Из браузера мне так и не удалось скачать его нормально, а пришлось воспользоваться утилитой wget:
yura ~/downloads $ wget http://www.red5.org/downloads/0_9/red5-0.9.1.tar.gz или yura ~/downloads $ wget http://www.red5.org/downloads/0_9/red5-0.9.1.zip
Еще к сожалению, разработчики не выкладывают checksum, чтобы можно было проверить целостность архива, так что ориентироваться можно по размеру файла (33.8 Mb для tar.gz и 35.1 Mb для zip) и по тому, как получилось или не получилось его распаковать.
Архив tar.gz распаковывается в папку red5-0.9.1. Но если вы скачивали zip, то будьте осторожны -- он распаковывается прямо в текущий каталог. Так что в этом случае нужно будет сперва создать папку red5-0.9.1, положить в нее zip-архив, и уже там распаковывать.
Вся эта небрежность с архивами со стороны разработчиков Red5 (open source такой open source), говорит о том, что бинарный дистрибутив явно находится на периферии их внимания, и предпочтительно устанавливать Red5 из сорцов.
Итак, после успешной распаковки архива (не важно, tar.gz или zip), мы получаем папку red5-0.9.1 с интересным содержимым, которое сейчас и рассмотрим:
Примечательно, что тут отсутствуют README.txt, INSTALL.txt или какие-либо другие инструкции о том, как установить и запустить Red5. На сайте эти инструкции тоже отсутствуют (но есть инструкции для сборки из сорцов).
Ну что ж, вооружившись здравым смыслом и интуицией, начнем с того, что попробуем запустить скрипт red5.sh в корне папки red5-0.9.1.
yura ~/downloads/red5-0.9.1 $ ./red5.sh Running on Linux Starting Red5 Red5 root: /home/yura/downloads/red5-0.9.1 Configuation root: /home/yura/downloads/red5-0.9.1/conf Root: /home/yura/downloads/red5-0.9.1 Deploy type: bootstrap Logback selector: org.red5.logging.LoggingContextSelector
Ну вот, оказывается, ничего устанавливать и не нужно. Red5 просто работает из коробки.
Примечание: если у вас уже установлен один экземпляр Red5, или был установлен раньше, и осталась определена системная переменная $RED5_HOME, то последствия вызова ./red5.sh могут быть другие :)
Ну прекрасно, осталось положить его в нужное место и кое-чего настроить. Нужным местом, вероятно, будет /opt/red5, или /usr/local/red5, или что-то еще по вашему вкусу.
Далее, если вы админ и настраиваете Red5 для работы в production, то наверняка создадите в системе отдельного пользователя, настроите права этому пользователю, и настроите, чтобы Red5 работал от этого пользователя, да еще что б работал как системный сервис. Если вы не умеете этого делать, то вряд ли может такое случится, что вас попросят настроить Red5 для работы в production :)
Если вы разработчик, как и я, и просто запускаете Red5 на своей локальной машине, чтобы разрабатывать под него свое приложение, то можете положить его куда угодно в своем домашнем каталоге. Или можете положить его в /opt/red5, или еще куда-нибудь. Но для этого понадобятся права рута. Тогда лучше из-под рута создайте папку /opt/red5, поставьте на нее owner и group -- себя. И уже из-под своего пользователя копируйте туда red5. Если будете копировать из-под рута, то все файлы Red5 будут принадлежать руту, и у вас будут сложности с тем, чтобы положить свое приложение в webapps.
Кто-то внимательный может спросить, а что это за системная переменная $RED5_HOME была упомянута? Эта переменная нужна для сборки Red5 из сорцов. Для бинарного дистрибутива не нужна. Однако если у вас определена такая переменная, то при запуске любой копии Red5 (допустим у вас две или больше копий установлены в разных местах) будет работать именно тот Red5, который находится в каталоге, куда указывает $RED5_HOME. В этом не трудно убедиться, заглянув в red5.sh.
Идем тем же путем -- red5.org -> Downloads, Releases -> 0.9.1 Final и скачиваем OSX red5-0.9.1.dmg
Открываем, видим исполняемый файл Red5, license.txt и readme.txt. В readme находим исчерпывающие указания по установке, и кидаем Red5 в папку Applications :)
Затем запускаем его, и в доке появляется бесполезная иконка. Бесполезная, потому что она не дает нам никакой информации, что там происходит с Red5: запустился ли он, работает ли нормально, какую инфу он генерирует?
Зайдем в /Applications/, Command + клик на Red5, Show Package Content, Resources/Java -- тут находим знакомые папки Red5, в том числе нужные нам log и webapps. По логам видим, что Red5 запустился и работает нормально.
В общем-то запускать Red5 по клику на иконку в Applications мало смысла. Более информативно запустить из консоли, дабы сразу видеть логи:
yura ~ $ cd /Applications/Red5.app/Contents/Resources/Java yura /Applications/Red5.app/Contents/Resources/Java $ sudo chmod 744 red5.sh yura /Applications/Red5.app/Contents/Resources/Java $ ./red5.sh Running on Darwin Starting Red5 Red5 root: /Applications/Red5.app/Contents/Resources/Java deploy type: bootstrap ...
Красота :)
Идите тем же путем -- red5.org -> Downloads, Releases -> 0.9.1 Final и скачивайте Windows setup-Red5-0.9.1.exe. Дальше пробуйте сами, я не пробовал :)
Второй способ установить Red5 -- собрать из сорцов. Этому способу разработчики уделили гораздо больше внимания. Есть краткая инструкция Red5 Installation Guide, и более подробная Chapter 5. Building Red5.
Этот способ предпочтителен еще и потому, что так мы получаем самую свежую версию Red5. На момент написания этих строк это версия 1.0.0 RC1.
Из Installation Guide мы узнаем, что перед тем, как собирать Red5, нам нужно кое-что иметь на своей машине. А именно:
и какой-нибудь клиент к Subversion
Если чего-то не хватает, то устанавливаем это. Я тут, конечно, не буду расписывать, как устанавливать Java, Ant, Ivy и Subverion под каждую ОС. Гугл в помощь :)
Ну а потом:
Готовим каталог, куда будем ставить Red5
из-под рута mkdir /opt/red5 chown yura /opt/red5 chgrp yura /opt/red5
Получаем сорцы из репозитория
cd /opt/red5 svn co https://red5.googlecode.com/svn/java/server/trunk/ .
Создаем переменную $RED5_HOME. Добавляем в ~/.bashrc
export RED5_HOME=/opt/red5/dist и потом эту же команду набираем в текущем сеансе консоли, либо делаем source ~/.bashrc Если такая переменная уже есть, то не лишне сейчас проверить, что она работает yura /opt/red5 $ echo $RED5_HOME /opt/red5/dist
Обратите внимание, что значение $RED5_HOME должно быть /opt/red5/dist, а не /opt/red5. Почему? Потому что в /opt/red5 у нас будут исходные коды проекта, а рабочая версия red5 соберется в папку /opt/red5/dist.
Собираем проект
yura /opt/red5 $ ant clean dist Buildfile: build.xml ... BUILD SUCCESSFUL Total time: 8 minutes 34 seconds
Это займет некоторое время, ибо сперва будут выкачиваться из инета зависимые библиотеки, а потом будут компилироваться 580 классов, 95 тысяч строк кода.
И вот после сборки у вас появилась папка /opt/red5/dist, и оттуда можно запускать Red5
yura /opt/red5/dist $ ./red5.sh Running on Linux Starting Red5 Red5 root: /opt/red5/dist Configuation root: /opt/red5/dist/conf ...
Ну вот и все :)
Кроме самого Red5, еще весьма полезно иметь на своем компе демо приложения, подготовленные разработчиками. Ибо документация не отличается полнотой и целостностью, а исходники этих приложений заполняют многие пробелы. К тому же хороший пример в несколько строк кода может гораздо быстрее объяснить, как делается та или иная штука, чем несколько страниц документации.
Серверную часть этих приложений берем здесь https://red5.googlecode.com/svn/java/example/trunk/, а клиентскую здесь https://red5.googlecode.com/svn/flash/trunk/
yura /opt/red5 $ mkdir example flash yura /opt/red5 $ svn co https://red5.googlecode.com/svn/java/example/trunk/ example yura /opt/red5 $ svn co https://red5.googlecode.com/svn/flash/trunk/ flash
Там довольно много всего, от совсем простых приложений до довольно сложных. И обзор этих приложений я сделаю позже :)
Add new comment