Installation de dépendances de MediaSPIP
Son rôle principal est d’installer l’ensemble des dépendances logicielles nécessaires coté serveur à savoir :
Les outils de base pour pouvoir installer le reste des dépendances
- Les outils de développements :
-
build-essential
(via APT depuis les dépôts officiels) ; -
checkinstall
(via APT depuis les dépôts officiels) ; -
scons
(via APT depuis les dépôts officiels) ; -
subversion
(via APT depuis les dépôts officiels) ; -
git
(via APT depuis les dépôts officiels) ; -
ruby
(via APT depuis les dépôts officiels) ;
-
- Certaines librairies de développement :
-
libcxxtools-dev
(via APT depuis les dépôts officiels) ; -
zlib1g-dev
(via APT depuis les dépôts officiels) ; -
apache2-common
(via APT depuis les dépôts officiels) ;
-
PHP5 et les classes nécessaires
-
php5-dev
(via APT depuis les dépôts officiels) : permettant de compiler et installer par la suite les extensions PHP ; -
php-pear
(via APT depuis les dépôts officiels) -
php5-curl
(via APT depuis les dépôts officiels) -
php5-gd
(via APT depuis les dépôts officiels) -
libmagick9-dev
(via APT depuis les dépôts officiels) : permettant par la suite de compiler une version récente dephp-imagick
Pour l’utilisation du plugin SPIP SPIPmotion
- Les librairies suivantes permettant l’encodage et le décodage de sons et vidéos :
-
libfaac-dev
(via APT depuis les dépôts officiels) ; -
libfaad-dev
(via APT depuis les dépôts officiels) ; -
libdirac-dev
(via APT depuis les dépôts officiels) ; -
libgsm1-dev
(via APT depuis les dépôts officiels) ; -
libopenjpeg-dev
(via APT depuis les dépôts officiels) ; -
libxvidcore4-dev
(via APT depuis les dépôts officiels) ; -
libschroedinger-dev
(via APT depuis les dépôts officiels) ; -
libspeex-dev
(via APT depuis les dépôts officiels) ; -
libvorbis-dev
(via APT depuis les dépôts officiels) ; - lame (téléchargement, compilation et installation automatique, version stable 3.94.8) ;
- librtmp (téléchargement, compilation et installation automatique) ;
- libopencore-amr (téléchargement, compilation et installation automatique) ;
- libvpx (téléchargement, compilation et installation automatique) ;
- x264 (téléchargement, compilation et installation automatique, via git) ;
-
- Les logiciels suivants permettant l’encodage de vidéos et sons ainsi que la gestion de leurs metadonnées :
Pour l’utilisation du plugin SPIP GetID3
- Les logiciels permettant de gérer correctement les métadonnées :
- vorbis-tools (via APT depuis les dépôts officiels)
Préconfiguration basique du serveur Apache et de PHP
Le script active dans un premier temps plusieurs modules du serveur Apache :
-
mod_headers
; -
mode_rewrite
pour la réécriture des URLs de SPIP ; -
mod_deflate
pour la compression gzip des données transmises. Le script installe également un fichier de configuration dont le code est disponible ici dans le répertoire/etc/apache2/conf.d
; -
mod_expires
pour le réglage des headers et des expirations des pages. Le script installe également un fichier de configuration dont le code est disponible ici dans le répertoire/etc/apache2/conf.d
; - il ajoute finalement un fichier de configuration
mediaspip_mime
(dont le code est disponible ici) dans/etc/apache2/conf.d
ajoutant la prise de plusieurs types mime ;
Le script modifie aussi certaines variables de configuration de PHP en créant le fichier de configuration /etc/php5/conf.d/mediaspip_upload.ini
:
-
file_uploads
à On ; -
upload_max_filesize
à 150M (modifiable dans la configuration du script) ; -
post_max_size
à 150M (modifiable dans la configuration du script) ;
À la suite de ces modifications, le script recharge la configuration du serveur Apache pour prendre en compte les modifications.
Installation de SPIP et MediaSPIP
Après avoir installé l’ensemble des librairies, logiciels et classes nécessaires au bon fonctionnement de MediaSPIP, le script s’occupe également d’installer les fichiers de MediaSPIP lui même :
- Récupération de la version stable courante de SPIP via SVN (2.1.x actuellement) ;
- Récupération via SVN de l’ensemble des extensions nécessaires à la distribution MediaSPIP ;
- Récupération via SVN de l’ensemble des plugins compatibles à la distribution MediaSPIP ;
- Récupération via SVN de l’ensemble des thèmes compatibles à la distribution MediaSPIP ;
- Création du répertoire
lib/
à la racine du répertoire d’installation afin de pouvoir récupérer facilement les librairies externes ; - Copie du fichier
htaccess.txt
en.htaccess
; - Dans le cas de la création d’une ferme à MediaSPIP :
- Récupération via SVN du plugin de mutualisation de SPIP ;
- Création du répertoire
sites/
permettant la création des différents sites ;
- Changement des droits sur les répertoires
lib/
,tmp
,local
etsites/
; - Changement de l’utilisateur (UID) et du groupe (GID) UNIX des fichiers de SPIP ;
Configuration liée à AlternC
Si AlternC est installé sur le serveur, il est automatiquement détecté et il est demandé si on souhaite l’utiliser pour MediaSPIP. Cela aura pour conséquence, pour l’instant, de lier les logiciels nécessaires au bon fonctionnement de MediaSPIP dans le safe_mode_exec_dir
utilisé par AlternC à savoir /var/alternc/exec.usr/
.
Les logiciels liés sont :
-
vorbiscomment
pour la gestion des métas de getid3 ; -
metaflac
pour la gestion des métas de getid3 ; -
ffmpeg
pour l’encodage de fichiers audios et vidéos ; -
qt-faststart
pour la gestion des entêtes MOOV des fichiers mp4 ; -
flvtool2
pour la gestion des metadonnées des fichiers flv ; -
mediainfo
pour la récupération des metadonnées des vidéos en général ; -
spipmotion.sh
qui est le script d’encodage du plugin SPIPmotion ;
Le code de ces ajouts peut être consulté ici.
NB : ffmpeg
n’est pas nécessaire ici car SPIPmotion passe constamment par le wrapper spipmotion.sh
pour l’utiliser ;
Ce que ce script ne fait pas
L’automatisation a ses bienfaits, cependant il est impossible de tout automatiser. La liste ci-dessous explique les étapes que ce script n’est pas à même de réaliser tout seul et que vous devrez réaliser manuellement :
- il ne peut définir vos DNS à votre place ;
- il ne crée pas le virtualhost apache nécessaire ;
- dans le cas de l’installation en mode ferme, il ne définit pas le site central de la ferme, ne configure pas le plugin de mutualisation en créant le fichier
mes_options.php
nécessaire avec la configuration obligatoire (par contre il récupère les fichiers du plugin) ; - il ne peut créer la première instance qui servira de site central ;
- il ne peut donc pas non plus créer la configuration spécifique du site central ni la récupération du plugin de gestion de la ferme ;