Thomas utilise dans son tuto les sources d’un contributeur, Campbell Smythe, mais cette version d’h5ai n’est pas à jour. Entre temps il y a eu plusieurs versions, dont l’une d’elle intègre une page de protection avec mot de passe pour ne pas exposer les infos du serveur. Il est vrai que ce n’est pas forcément nécessaire sur une piratebox, mais si nous souhaitons installer la dernière version (0.26.1 ici), nous allons devoir faire quelques opérations complémentaires (un tweet de Matthias laisse penser que cela ne sera plus nécessaire sur la version 2.1).

Rappel des faits

L’histoire commence le 26 février lorsque je teste pour la première fois h5ai sur une librarybox 2.0. Cela fonctionne, mais très vite la box devient inutilisable. Je signale à Matthias que c’est prometteur, il ouvre alors un ticket d’amélioration pour étude : Better directorylisting with h5ai #5.

Au mois de mai, Campbell Smythe complète le ticket, et publie sur son site les sources d’une version modifiée pour que cela fonctionne convenablement.

Comparaison 0.24.1 vs 0.26.1

Fichier options.json

J’ai comparé le fichier options.json (dans le répertoire _h5ai\conf\) pour lister les options à désactiver. Voici la liste des éléments que j’ai relevé (par numéro de ligne) :

  • 93: Allow customized header and footer files.
  • 105 Enable packaged download of selected entries.
  • 205 Play a audio preview on click.
  • 215 Show an image preview on click.
  • 231 Show text file preview on click
  • 265 Play a video preview on click.
  • 275 Show QRCodes on hovering files.
  • 285 Make entries selectable.
  • 323 Show thumbnails for image files.
  • 352 Show a folder tree.

On peut en profiter pour passer la variable de la ligne 176 à fr.

lighttpd.conf et mime.types

On peut constater également qu’il est nécessaire de modifier les fichiers lighttpd.conf et mime.types.

  • dans le lighttpd.conf (emplacement : /opt/piratebox/conf/lighttpd/lighttpd.conf), c’est pour ajouter au serveur web qu’il doit prendre en compte h5ai (ajout de "/_h5ai/server/php/index.php")

(situé ligne 23 du fichier en annexe, cherchez la section index-file.names)

  • dans le fichier mime.types (emplacement : /opt/piratebox/conf/lighttpd/mime.types), c’est pour ajouter l’extension de fichier SVG. Par curiosité je ne l’ai pas ajouté tout de suite pour voir, et on peut constater des dysfonctionnements sur le thème graphique (qui utilise pour ces images des fichiers SVG) (ajout de la ligne ".svg" => "image/svg+xml",).

(voir la ligne 86 du fichier joint en annexe)

h5ai

Enfin, placer les fichiers d’h5ai à la racine du serveur web ici : /opt/piratebox/www/.

php5-mod-session

Sur une BiblioBox neuve, on s’en rend compte assez rapidement qu’il manque quelque chose si l’on tente d’afficher le contenu d’un répertoire :

Fatal error: Call to undefined function session_start() in /opt/piratebox/www/_h5ai/server/php/inc/setup.php on line 21

Qui dit function session_start(), dit qu’il nous manque un module PHP pour gérer correctement la session d’authentification.
Heureusement pour moi, lors du PirateBox Camp de juillet 2014, nous avons eu à résoudre un message d’erreur similaire avec l’installation de 99ko [1].

Récupérez le fichier php5-mod-session_5.4.5-3_ar71xx.ipk sur les dépôts d’OpenWrt : http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/

Une fois transféré sur votre box, on l’installe en spécifiant l’option d’utiliser le support externe (pour ne pas saturer la mémoire interne du TpLink) (une fois connecté en ssh) :

# opkg -d ext install php5-mod-session_5.4.5-3_ar71xx.ipk

Logiquement tout se passe rapidement et le module est installé.

Installing php5-mod-session (5.4.5-3) to ext… Configuring php5-mod-session.

Finaliser l’installation

Pour prendre en compte toutes ces modifications, on relance les scripts PirateBox :

# /etc/init.d/piratebox restart

Pour vérifier que tout est en ordre, on affiche la page de vérification d’h5ai (http://librarybox.lan/_h5ai/)

h5ai-login.png

Comme vous pouvez le voir, il n’y a pas de mot de passe par défaut, comme il n’y a pas vraiment de secret sur les composants d’une piratebox, je passe sur les consignes pour personnaliser le mot de passe. Si vous deviez installer h5ai sur un autre type de serveur, je vous y encourage par contre.

Une dernière capture écran avec la page de résumé de configuration :

h5ai-infos.png

Note

[1] oui Thomas je dois publier un tuto également