Documentation/fr

From MediaBox 404

Jump to: navigation, search

Reference: English | Translations:   Français  • 


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

Image:capture1.png

Paramétrage diverses

Image:capture2.png

Création du compte administrateur

Image:capture3.png

Paramétrage de la page d'accueil

Image:capture4.png

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


©2007 Albert, MadStef, Kalden et Dawar - Ensemble du document sous GNU Free Documentation License 1.2

Personal tools