Documentation/fr
From MediaBox 404
Contents
|
Installer MediaBox404
Dans un premier temps, on va installer les bases. On présuppose que vous avez des notions d'administration sous GNU/linux (chown, chmod et autres joyeusetés du même genre)
Attention, il faut un serveur dédié pour installer ce programme, n'espérez pas installer cela sur un compte gratuit free par exemple, vous devez avoir un accès shell a la machine.
Créer un utilisateur dédié :
Pour la sécurité, la webradio va fonctionner sous un compte dédié. Créez un compte parlant, par exemple, ce sera l'utilisateur "radio" :
arthur:~# adduser radio
Les dépendances
Attention, très souvent Lame et ses librairies ne sont pas inclus dans les distributions pour des problèmes de brevets logiciels. Il faut en général utiliser un dépôt externe pour que Mediabox404 se compile avec la gestion du mp3.
Dépendances sous Debian/Ubuntu :
Pour lame, vous aurez besoin d'aller sur debian-multimedia.org que je vous recommande chaudement : http://www.debian-multimedia.org. Son webmaster fait des paquets de beaucoup de softs non-libres dont des paquets multimedia qui vont faire notre bonheur. Pour Ubuntu, les dépots Universe, Multiverse et Medibuntu sont conseillé.
Sous Debian, pour ajouter les dépôts multimédia :
arthur:~# echo deb http://www.debian-multimedia.org stable main >> /etc/apt/sources.list
Les paquets restants sont sur les dépôts officiels
Récupérez les paquets (versions minimales) :
mysql-server-4.1 mysql-client14 libmysqlclient14-dev apache libxml2-dev php4 php4-pear php4-mysql php4-gd libvorbis-dev vorbis-tools libshout3-dev libid3-dev libcurl3-dev build-essential libxslt1-dev icecast2 automake1.9
Vous pouvez aussi récupérer libflac-dev (le flac) liblame-dev liblame0 lame si vous avez besoin.
Dépendances sous Gentoo :
fichier /etc/portage/package.keywords
dev-php/PEAR-Image_Graph ~ARCH
dev-php/PEAR-Numbers_Roman ~ARCH
dev-php/PEAR-Image_Canvas
ARCH will be replaced by x86 or amd64 or other check your system arch.
fichier /etc/portage/package.use
dev-lang/php apache2 -berkdb bzip2 -cgi -cli -crypt -ftp gd -gdbm -imap -ipv6 -kerberos -ldap mysql -ncurses -nls -pcre -postgres -readline -reflection session -simplexml -spell -spl -sqlite ssl -truetype xml -xmlrpc xsl zip zlib -adabas -apache -bcmath -birdstep -calendar -cdb -cjk -concurrentmodphp -ctype curl -curlwrappers -db2 -dbase -dbmaker -debug -discard-path -doc -empress -empress-bcs -esoob -exif -fastbuild -fdftk -filepro -firebird -flatfile force-cgi-redirect -frontbase -gd-external -gmp hardenedphp -hash -hyperwave-api iconv -informix -inifile -interbase -iodbc -java-external -libedit -mcve -memlimit -mhash -ming -msql -mssql -mysqli -oci8 -oci8-instant-client -odbc -pcntl -pdo -pdo-external -pic -posix -qdbm -recode -sapdb -sasl -sharedext -sharedmem -snmp -soap sockets -solid -sybase -sybase-ct -sysvipc -threads -tidy -tokenizer -unicode -vm-goto -vm-switch -wddx xmlreader xmlwriter -xpm -yaz -pcre session -expat
dev-db/mysql berkdb -perl ssl -big-tables -cluster -debug -embedded -extraengine latin1 -minimal -raid -srvdir -static
net-www/apache apache2 -ldap ssl -debug -doc -mpm-leader -mpm-peruser -mpm-prefork -mpm-threadpool -mpm-worker -no-suexec -static-modules -threads installation
emerge mysql apache php PEAR-PEAR PEAR-Image_Graph mysql lame vorbis-tools shout id3lib flac curl automake
Dépendances sous mandriva :
urpmi mysql-server mysql-client apache2 php php-pear php-mysql php-gd lame liblame0 vorbis-tools libvorbis-dev libshout3-dev libid3-dev libflac-dev libcurl3-dev libmysqlclient-dev liblame-dev build-essential checkinstall
Dépendances sous RedHat :
A faire...
Compilation de Mediabox404
Récupération des sources de Mediabox404
Récupérez l'archive sur http://www.mediabox404.org/Download. A ce jour (08/10/2007) une seule archive a prendre : mediabox404-1.69b.tar.bz2
Ca pourrait évoluer avec le temps, mais ça ne changera pas la procédure d'installation.
Compilation
Décompressez l'archive :
radio@arthur:~$ tar xvzf mediabox404-20061129.tar.gz
Dans le répertoire crée, vous trouverez les trois modules de médiabox404 :
radio@arthur:~/mediabox404-1.69_alpha$ ls -l
total 12
drwxr-xr-x 10 radio radio 4096 Nov 29 19:51 phpcore404
drwxr-xr-x 6 radio radio 4096 Nov 29 19:55 scheduler404
drwxr-xr-x 8 radio radio 4096 Nov 29 19:52 stream404
phpcore404 contient les pages web (phpcore), scheduler404 le programmateur et stream404 le streameur.
Attention ! Dans mon cas, automake n'était pas dans la bonne version -> update nécessaire de l'automake (automake1.9)
On commence par scheduler404
radio@arthur:~/mediabox404-1.69_alpha$ cd scheduler404
radio@arthur:~/mediabox404-1.69_alpha/scheduler404$ ./configure
/.../
config.status: creating Makefileconfig.
status: creating src/Makefileconfig.
status: creating config.hconfig.
status: executing default-1 commandsCompiling with: -I/usr/include/libxml2 -g -O2 -WallLinking with: -L/usr/lib -lxml2 -lz -lpthread -lm -lmysqlclient -lpthread
XML : yes
Mysqlclient : yes
radio@arthur:~/mediabox404-1.69_alpha/scheduler404$ make
/.../
radio@arthur:~/mediabox404-1.69_alpha/scheduler404$ make install
/.../
J'ai eu l'erreur suivante pendant un premier test : "/usr/bin/ld: warning: i386:x86-64 architecture of input file `xml_config.o' is incompatible with i386 output " Ca a été résolu avec un rm src/*.o (Attention lors de l'usage de la commande rm !) A noter python n'est pas nécessaire, sauf si vous voulez scripter votre médiabox dans ce langage.
On continue avec stream404 :
arthur:/home/radio/mediabox404-1.69_alpha/stream404# make
/.../
arthur:/home/radio/mediabox404-1.69_alpha/stream404# make install
/.../
Si tout c'est bien passé, vous devez avoir :
arthur:/home/radio/mediabox404-1.69_alpha/stream404# ls /usr/local/bin
scheduler404 stream404
L'installation de l'interface web, phpcore
Pour des raisons pratiques, j'ai choisi de l'installer dans radio/public_html. Vous pouvez, bien sur, la mettre ou vous voulez tant que le répertoire est accessible par Apache.
arthur:/home/radio# mkdir public_html
Copiez ou deplacez le contenu de phpcore404 dans public_html
Positionnez les droits (Attention, suivant votre distribution, le groupe peut changer : www-data sous debian mais apache sous RedHat)
arthur:/home/radio# chown -R radio:www-data public_html/
arthur:/home/radio# chmod -R 0660 public_html/*
arthur:/home/radio# find public_html/ -type d -exec chmod 0770 {} ;
Configuration des dépendances (Mysql, apache..)
Créez la base de données
La base de donnée va s'appeler radio, son admin, radio et le mot de passe radio ATTENTION : utilisez un vrai mot de passe, pas le mot de passe non sécurisé de cet exemple...
arthur:/home/radio# mysql
mysql> create database radio ;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL ON radio.* TO 'radio'@'localhost' IDENTIFIED BY 'radio' ;
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges ;
Query OK, 0 rows affected (0.00 sec)
mysql> ^d
Vous pouvez aussi créer votre base de donnée avec phpmyadmin ou tout autre gestionnaire mysql.
Configuration d'Apache pour l'interface web, phpcore
Comme nous allons utiliser un "public_html", assurez vous que les lignes UserDir public_html et UserDir disabled root dans /etc/apache2/apache2.conf soient décommentées.
Cherchez ensuite dans /etc/php4/apache2/php.ini les valeurs suivantes et corrigez les au besoin :
memory_limit = 32M
magic_quotes_gpc = Off
register_globals = On
Et relancez apache.
Finir l'installation de Mediabox404
Scheduler404
configuration du fichier scheduler404.xml
<?xml version="1.0"?>
<mediabox404_audio_prg:Configuration xmlns:mediabox404_audio_prg="http://www.radio404.org">
<Log>
<!-- Set this to 1 if you want to see more verbose output from mediabox404_radio_prg -->
<Verbose>1</Verbose>
<!-- Set this to 1 if you want logfile mediabox404_radio_prg.log -->
<LogFile>1</LogFile>
<!-- This directory specifies where mediabox404_radio_prg should put the logfile : mediabox404_radio_prg.log. -->
<BaseDirectory>.</BaseDirectory>
</Log>
<Timing>
<!-- Defininition du pas au niveau de la programmation, en minute {1,2,3,4,5,6,8,9,10,12,15,16,18,20,24,30,32,36,40,45,48,60} -->
<program>5</program>
<!-- temps minimum entre 2 jingles -->
<jingle>180</jingle>
<!-- temps minimum entre 2 promos -->
<promo>120</promo>
<!-- controle de la programmation (en heure) -->
<period_control>0</period_control>
<!-- nombr de controle effectués -->
<max_control>0</max_control>
</Timing>
<!-- appel base mysql -->
<Sql>
<Hostname>localhost</Hostname>
<Port>3306</Port>
<User>mediabox</User>
<Password>motdepasse</Password>
<Database>Mediabox404</Database>
<!--informations applicatif-->
<Mysql_options>Mediabox404_audio_prg</Mysql_options>
<Data>t_data</Data>
<Datapath>t_datapath</Datapath>
<Playlist>t_playlist</Playlist>
<Playlistdata>t_playlistdata</Playlistdata>
<Live>t_live</Live>
<Programme>t_programme</Programme>
<Streamstack>t_streamstack</Streamstack>
<Progstack>t_progstack</Progstack>
<Pilotstack>t_pilotstack</Pilotstack>
<Streamlog>t_streamlog</Streamlog>
<Log>t_log</Log>
<Tempstack>t_tempstack</Tempstack>
<Lastmainplaylist>t_lastmainplaylist</Lastmainplaylist>
<Lastplaylist>t_lastplaylist</Lastplaylist>
<Lastpromo>t_lastpromo</Lastpromo>
<Lastjingle>t_lastjingle</Lastjingle>
<Currentplaylisttype>t_currentplaylisttype</Currentplaylisttype>
<Metadata>t_metadata</Metadata>
</Sql>
</mediabox404_audio_prg:Configuration>
Stream404
configuration du fichier stream404.xml
<?xml version="1.0"?>
<!-- $Id: stream404.conf.dist,v 1.1 2004/05/09 13:43:39 bedlam Exp bedlam $ -->
<stream404:Configuration xmlns:stream404="http://www.icecast.org/projects/ices">
<Playlist>
<!-- appel a une playlist de secours en cas de plantage du scheduler404 -->
<File>/etc/playlist.txt</File>
<Randomize>1</Randomize>
<Type>sql</Type>
<Module>stream404</Module>
</Playlist>
<BackupPlaylist>
<File>/etc/playlist.txt</File>
<Randomize>1</Randomize>
<Type>builtin</Type>
<Module>stream404</Module>
</BackupPlaylist>
<Execution>
<Background>0</Background>
<Verbose>1</Verbose>
<BaseDirectory>/tmp</BaseDirectory>
</Execution>
<!-- appel a la base de donnée-->
<Sql>
<Port>3306</Port>
<Unixsocket>/var/run/mysqld/mysqld.sock</Unixsocket>
<Sqltype>MYSQL</Sqltype>
<User>mediabox</User>
<Password>motdepasse</Password>
<Database>Mediabox404</Database>
<Table>t_streamstack</Table>
<UrgTable>t_pilotstack</UrgTable>
<CurrentStreamTable>t_currentstream</CurrentStreamTable>
<StreamLogTable>t_streamlog</StreamLogTable>
<MetadataTable>t_metadata</MetadataTable>
</Sql>
<!--stream -->
<Stream>
<Server>
<Hostname>localhost</Hostname>
<Port>8000</Port>
<!-- mot de passe source pour icecast -->
<Password>motdepasse</Password>
<Protocol>http</Protocol>
<Format>ogg</Format>
</Server>
<Mountpoint>/divergence.ogg</Mountpoint>
<!-- The name of you stream, not the name of the song! -->
<Name>Divergence FM</Name>
<!-- Genre du stream -->
<Genre>mixed</Genre>
<!-- description -->
<Description>La radio qui donne du sens au son - Montpellier - France</Description>
<!-- URL référente du stream -->
<URL>http://www.divergence-fm.org/</URL>
<Public>1</Public>
<Quality>4</Quality>
<Bitrate>196</Bitrate>
<Samplerate>44100</Samplerate>
<Channels>2</Channels>
</Stream>
</stream404:Configuration>
Configure Stream404 avec IceCast
configuration file icecast.xml
<icecast>
<limits>
<!-- autorisation à 42 clients de se connecter au serveur en même temps ! 42 est un chiffre fétiche servant d'exemple ;-)-->
<clients>42</clients>
<!--16 sources différentes, c'est énoooorme ;-) -->
<sources>16</sources>
<threadpool>5</threadpool>
<!--Taille du cache -->
<queue-size>102400</queue-size>
<!-- divers timeount -->
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
</limits>
<!-- mot de passe de la source (cf darkice, stream404, streamtrancodev3, etc) -->
<authentication>
<source-password>motdepasse</source-password>
</authentication>
<!-- adresse de la machine sur laquelle le serveur icecast2 tourne-->
<hostname>localhost</hostname>
<!--port sur lequel icecast2 ecoute-->
<listen-socket>
<port>8000</port>
</listen-socket>
<!-- authentification administration serveur icecast2-->
<authentication>
<admin-user>divergence</admin-user>
<admin-password>motdepasse</admin-password>
</authentication>
<fileserve>0</fileserve>
<!-- repertoire applicatifs et logs-->
<paths>
<basedir>/usr/share/icecast</basedir>
<logdir>/var/log/icecast2</logdir>
<webroot>/etc/icecast2/web</webroot>
<adminroot>/etc/icecast2/admin</adminroot>
</paths>
<!--nomd des fichiers de logs -->
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>3</loglevel> <!-- niveau d'informations transmises par les fichiers de log : 4 Debug, 3 Info, 2 Alerte, 1 Erreur -->
</logging>
<security>
<chroot>0</chroot>
<changeowner>
<!-- groupe et utlisateur à partir duquel le serveur est lancé, root interdit !!! -->
<user>icecast2</user>
<group>users</group>
</changeowner>
</security>
</icecast>
Configuration de l'interface web, phpcore
Dans votre butineur favori, allez a http://<site>/~radio/installation
La première page vous indique si vos parametres sont OK. Corrigez au besoin puis cliquez sur "next"
La seconde page vous rappelle les termes de la licence GPL. Validez (en bas) et cliquez sur "next"
La page suivante vous permet de rentrer les différents paramètres. Cliquez sur "install"
Paramétrage de le base de données
Paramétrage diverses
Création du compte administrateur
Paramétrage de la page d'accueil
Connexion à l'administration de votre radio
Voila, si vous n'avez pas d'erreurs, c'est installé, la page vous dira...rien
Effacez (ou renommez le rep installation/) et refaites un http://<site>/~radio/
Cliquez sur Admin et loggez vous avec le compte/mot de passe que vous avez créer
Préparer l'ajout de musique
Avant toute chose, on va préparer le répertoire qui va accueillir les morceaux. On va tout stocker au même endroit dans un premier temps.
Pour se simplifier la vie au début, on tout coller dans /var/music.
Faites attention d'avoir suffisamment de place, ça augmente vite. Bien sur, vous pouvez aussi mettre ca dans /home/<un_user>
arthur:~# mkdir music
arthur:~# chown radio:www-data music
arthur:~# chmod 0775 music
Le groupe du web (www-data sous debian ou unbuntu) doit être aussi propriétaire du répertoire et pouvoir écrire sinon il ne pourra pas manipuler les tags des morceaux
Utilisation de la Mediabox404
Todo
Voir aussi
- la configuration des logiciels de streaming
- La documentation française de Icecast
- La configuration de l'ancienne version, très proche de cette documentation.
©2007 Albert, MadStef, Kalden et Dawar - Ensemble du document sous GNU Free Documentation License 1.2







