понедельник, 8 июля 2013 г.

Как поднять свое Интернет Радио на Debian


Поднимем свое интернет радио. для этого нужно всего ничего:

- Доенное имя
- RadioCMS
- Развернутый веб сервер
- PHP5 + mysql
-  php должен работать на apache2, а не на CGI

из дополнительного ПО
- icecast
- ezstream
- libssh2
- pecl ssh2
- curl и gd
- библиотека iconv + lame (для преобразование потока) 

Начнем:



Установим сразу:
aptitude install libssh2-1-dev libssh2-php
/etc/init.d/apache2 reload 


1. Добавляем настройку в httpd.conf
/etc/apache2/httpd.conf (Debian, Ubuntu, и тп)

<location></location>
php_admin_value open_basedir "/"
2а. Установка icecast из Репозитория

- выполняем команды 
apt-get update
apt-get install icecast2
- в "/etc/default/icecast2" установить значение:
ENABLE=true

- файл конфигурации /etc/icecast2/icecast.xml
Конфиг предпологаем что по адресу http://ваш_ip:8000/live.m3u - будет находится ссылка для прослушивания радио. Тут так же встроен fallback (автоматическое переключение слушателей на прямой эфир) между основным потокм /live и потоком radiocms /play.
Жирным и красным выделены места которые нужно обязательно заменить.

Жирным и пунктиром - выделена секция с путями до каталогов айскаста и каталогом логов. Пути webroot и adminroot нужно сравнить со своими реальными, если не совпадают - вписать ваши пути. Директория logdir нигде не существует, её нужно создать и выставить права 777.

Всё остальное без особой необходимости трогать не нужно.

В Debian чаще всего это /etc/icecast2/.
<icecast>
.......

<authentication>
<source-password>пароль</source-password>
<relay-password>пароль</relay-password>
<admin-user>admin</admin-user>
<admin-password>пароль</admin-password>
</authentication>
<hostname>ip-сервера</hostname>

.........

<paths>
        <logdir>/var/log/icecast2</logdir>
        <webroot>/etc/icecast2/web</webroot>
        <adminroot>/etc/icecast2/admin</adminroot>
<alias source="/" dest="/status.xsl"/>
</paths>


.....

</icecast> 

- запускаем icecast командой:
/etc/init.d/icecast2 start
- icecast доступен по адресу: http://ВашIPсервера:8000
2б. Установка icecast из исходников
Прежде всего  нам необходим компилятор gcc, если у вас он не установлен, устанавливаем: 
apt-get install build-essential
Будем работать в папке /home/
cd home/
Создадим папку icecast
mkdir icecast
cd icecast/

Скачиваем icecast trunk:
wget http://people.xiph.org/%7Ebrendan/snapshots/icecast/icecast-trunk-20090819.tar.gz
Распаковываем: tar xvf icecast-trunk-20090819.tar.gz
переходим: cd icecast-trunk

запускаем компиляцию
./configure

Итак при конфигурации( ./configure ) велезет ошибка:
configure: error: XSLT configuration could not be found

Устанавливаем библиотеку XSLT

Создаем папку: mkdir XSLT
Зайдем: cd XSLT
Скачаем: wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz


Распаковываем архив:
tar xvf  libxslt-1.1.26.tar.gz

 и переходим в папку:
cd libxslt-1.1.26

Итак сейчас должен быть этап сборки,
необходим еще компонент libxml2-dev

 Устанавливаем: apt-get install libxml2-dev

И так теперь Компилируем и собираем XSLT
./configure
make
make install

Установка libvorbis-dev
apt-get install libvorbis-dev

Библиотеки и дополнения установлены, возвращаемся к сборке и установке Icecast


 Переходим в папку где были скачены исходники icecast
и собираем:
./configure
make
make install

По умолчанию конфигурационный файл icecast будет лежать в /usr/local/etc/icecast.xml
Создаем директорию для логов c правами 777 к примеру тут: /var/log/icecast
Создаем файлы error.log access.log и ставим права доступа (chmod) 777

Пробуем запускать командой:
/usr/local/bin/icecast -b -c /usr/local/etc/icecast.xml &

Для автозапуска добавьте данную строку в автозагрузку

- icecast доступен по адресу: http://ВашIPсервера:8000


3) необходим ezstream, deb пакетов нету. придется все собирать из исходника.
- wget http://downloads.xiph.org/releases/ezstrea...am-0.5.6.tar.gz
- tar zxvf ./ezstream-0.5.6.tar.gz
- cd ezstream-0.5.6
- ./configure





возможная ошибка при компиляции
1. configure: error: The pkg-config utility is required.
2. configure: error: libshout 2.2.x is required
3. configure: error: TagLib is required.
решение:
aptitude install pkg-config
aptitude install libshout-dev
aptitude install libtag1-dev libtagc0-dev
Собрали? Устанавливаем:

- make
- make install

Теперь настроим  ezstream

Создаём файл playlist.txt с правами 777.
и ezstream.xml с правами 644 и содержанием: 


<ezstream>
<url>http://localhost:8000/play</url>
<sourcepassword>radioglobal777</sourcepassword>
<format>MP3</format>
<filename>/usr/local/etc/icecast</filename>
<shuffle>0</shuffle>
<playlist_program>0</playlist_program>
<svrinfoname>Name</svrinfoname>
<svrinfourl>http://radio.global-mmorpg.com/</svrinfourl>
<svrinfogenre>Ofther</svrinfogenre>
<svrinfodescription>Radio Atrea</svrinfodescription>
<svrinfobitrate>128</svrinfobitrate>
<svrinfochannels>2</svrinfochannels>
<svrinfosamplerate>44100</svrinfosamplerate>
<svrinfopublic>1</svrinfopublic>

</ezstream>

Запишем в файл плейлиста полный адрес любого mp3-файла и выполним команду:  
ezstream -c /полный/путь/до/конфига
В потоке http://ваш_сайт.ru/play.m3u должна заиграть музыка.

4) Установим перекодировку
 Если хотите перекодировать файлы не лету:
- Установите lame
apt-get install lame-
- Добавьте в конце конфига, перед </ezstream> следующий код (для 128 кбит\сек):
<reencode>
<enable>1</enable>
<encdec>
<format>MP3</format>
<match>.mp3</match>
<decode>lame -f --preset cbr 128 --bitwidth 16 "@T@" -</decode>
</encdec>
</reencode>

5) переходим к главному установка обвязки RadioCMS
- качаем http://radiocms.ru/main/7-skachat-radiocms.html
- распакуйте архив в корневую папку вашего сайта
- Запустите файл Вашсайт.ru/radio/install.php и слудейте инструкциям
- Добавьте в cron указанную в конце установки команду 
wget http://www.radio.global-mmorpg.com/radio/event.php -O event.php  

вариант второй
полый/путь/до/php /var/www/radiouser/data/www/radio.global-mmorpg.com/radio/event.php

 В целях безопасности настоятельно рекомендуем удалить файл install.php

6) Подключени dj без обрывов
Открываем конфиг icecas
<mount>
<mount-name>/live</mount-name>
<charset>CP1251</charset>
<fallback-mount>/play</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
</mount>
<mount>
<mount-name>/play</mount-name>
<charset>CP1251</charset>
<fallback-mount>/live</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
</mount>
Начиная с версии RadioCMS 2.0 появилась поддержка русского языка
- убедитесь что в настройках транслит отключён
- откройте файл icecast.xml и добавьте строки:
<mount>
<mount-name>/play</mount-name>
<charset>CP1251</charset>
</mount>
- устанавливаем локаль ru_RU.CP1251
locale-gen ru_RU.CP1251

На этом установка закончена :)
 

Комментариев нет:

Отправить комментарий