14 августа 2009 г.

Установка Icecast2 под FreeBSD

Вот как установить Icecast в системе FreeBSD:

Запускаем установку из портов:
cd /usr/ports/audio/icecast2 && make install clean

(см. ниже все эти команды одной строкой)

Добавляем пользователя и группу для Icecast'а:
pw groupadd icecast && pw useradd icecast -g icecast

Создаём папку для log-файлов:
mkdir /var/log/icecast

Создаём собственно log-файлы:
touch /var/log/icecast/access.log && touch /var/log/icecast/error.log && touch /var/log/icecast/playlist.log

Предоставляем права на эти файлы (а затем и на саму директорию) свежесозданному пользователю Icecast'а:
chown -R icecast /var/log/icecast/* && chgrp -R icecast /var/log/icecast/* && chmod 644 /var/log/icecast/*

Копируем конфиг из образца в рабочий:
cp /usr/local/etc/icecast.xml.sample /usr/local/etc/icecast.xml

Старт сервиса при запуске системы:
echo "icecast_enable=YES">>/etc/rc.conf

Все те же самые команды одной строкой:
pw groupadd icecast && pw useradd icecast -g icecast && mkdir /var/log/icecast && touch /var/log/icecast/access.log && touch /var/log/icecast/error.log && touch /var/log/icecast/playlist.log && chown -R icecast /var/log/icecast/* && chgrp -R icecast /var/log/icecast/* && chmod 644 /var/log/icecast/* && cp /usr/local/etc/icecast.xml.sample /usr/local/etc/icecast.xml && echo "icecast_enable=YES">>/etc/rc.conf

Прописываем в конфиге новые пути к лог-файлам!

Запускаем Icecast:
/usr/local/etc/rc.d/icecast2 start


После установки может ругаться на права root'а:
ERROR: You should not run icecast2 as root
Use the changeowner directive in the config file
Чтобы исправить это, откройте /usr/local/etc/icecast.xml и в секции security (в самом конце файла) выставьте работу от имени специально созданного выше пользователя icecast из одноимённой группы. Для этого найдите секцию <security> и отредактируйте её содержимое как показано в примере:
<security>
<chroot>0</chroot>
<changeowner>
<user>icecast</user>
<group>icecast</group>
</changeowner>
</security>
То есть:
  • Значение chroot выставьте равным 0
  • Значения user и group выставьте равными icecast

Внимание! Если вообще не запускается, не висит в активных процессах, и не подаёт никаких признаков жизни, в конфиге icecast.xml проверьте правильность указания пути к папке с лог файлами (в секции paths). Зачастую, там по умолчанию выставлено /usr/local/var/log/icecast, а мы при установке создали директорию /var/log/icecast. Укажите это в logdir.

Если теперь Вы задаётесь вопросом с чего бы передать сигнал на Icacast чтобы тот раздавал его слушателям, почитайте статью со скриншотами об установке SAM Broadcaster.

4 комментария:

Анонимный комментирует...

Спасибо автор. Помог ваш совет о неправильном пути к логфайлам.

Анонимный комментирует...

Cпасибо!

Анонимный комментирует...

Отличный мануал. Все с первого раза получилось. Спасибо!

Alex комментирует...

Спасибо - заработало!