Table des matières

Installation du système intégré de gestion de bibliothèque (SIGB) PMB sur un serveur Debian

Au 05/10/2018, la dernière version PMB 5.0.5 n'est pas compatible avec PHP 7, et nécessite donc d'installer manuellement PHP 5.6, sur Debian 9.

Pour bien comprendre toutes les étapes nécessaires, les différents problèmes rencontrés sont listés (avec leur solution), dans l'ordre où ils peuvent apparaître (j'ai volontairement ignoré certains prérequis du logiciel, afin de n'installer que ceux qui sont réellement bloquants)

Installation de Debian

Télécharger et installer la dernière version de Debian 9 (en utilisant par exemple pmb comme nom d'utilisateur principal)

Effectuer les mises-à-jour avec le compte root

su
apt-get update
apt-get upgrade

Installation d'apache

apt-get install apache2

Tester apache en affichant la page http://localhost

Installation de PHP 5.6

Ajouter le dépôt contenant la version 5.6 de PHP

apt-get install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb http://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt-get update

Installer PHP 5.6

apt-get install php5.6

Vérifier que la version 5.6 de PHP est celle par défaut (au cas où une autre version serait installée)

update-alternatives --config php

Créer le fichier phpinfo.php

echo '<?php phpinfo(); ?>' >/var/www/html/phpinfo.php

Vérifier que PHP est bien installé affichant la page http://localhost/phpinfo.php

Installation du serveur SQL MariaDB

apt-get install mariadb-server

Installation de phpMyAdmin

apt-get install phpmyadmin
(sélectionner le serveur web apache2)
(configurer la base de données de phpmyadmin)
(choisir un mot de passe de connexion mariadb) : mariadb

Tester phpMyAdmin en affichant la page http://localhost/phpmyadmin

Un message d'erreur indique que l'extension php mbstring est manquante, il faut l'installer et redémarrer apache

apt-get install php5.6-mbstring
service apache2 restart

Tester à nouveau phpMyAdmin en affichant la page http://localhost/phpmyadmin

Un message d'erreur indique que l'extension php mysqli est manquante, il faut l'installer et redémarrer apache

apt-get install php5.6-mysql
service apache2 restart

Tester à nouveau phpMyAdmin en affichant la page http://localhost/phpmyadmin

Tester la connexion à phpMyAdmin avec le compte root, sans mot de passe

Un message d'erreur indique que la configuration interdit une connexion sans mot de passe (voir AllowNoPassword), il faut sécuriser l'installation du serveur SQL

mysql_secure_installation
(choisir un mot de passe pour mariadb) : mariadb
(supprimer l'accès anonyme)
(autoriser la connexion root à distance)
(supprimer la base de test)
(recharger les tables de privilèges)

Tester la connexion à phpMyAdmin avec le compte root, et le mot de passe mariadb

Un message d'erreur indique que l'accès est refusé pour l'utilisateur root@localhost, il faut forcer les droits et le mot de passe SQL du compte root

mysql -u root
(Connexion SQL sans mot de passe)
GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY 'mariadb';
exit;

Tester à nouveau la connexion à phpMyAdmin avec le compte root, et le mot de passe mariadb

Installation de PMB

Télécharger pmb5.0.5.zip depuis l'adresse http://forge.sigb.net/redmine/projects/pmb/files et le décompresser dans le répertoire /var/www/html

cd /home/pmb/Téléchargements/
unzip pmb5.0.5.zip
mv pmb /var/www/html/

Corriger les droits du dossier /var/www/html

chown -R www-data:www-data /var/www/html
cd /var/www/html
find -type f -exec chmod 0640 {} \;
find -type d -exec chmod 0750 {} \;

Afficher la page http://localhost/pmb/tables/install.php pour lancer l'installation de PMB

(Encodage utf-8, langue Français)
(Utilisateur MySql root, mot de passe mariadb, Server localhost, Base de données vide)
(Utilisateur PMB bibli, mot de passe bibli, Base de données PMB bibli)

Afficher la page d'accueil de PMB http://localhost/pmb

La page est blanche à cause d'une erreur visible dans les logs d'apache

tail /var/log/apache2/error.log
(PHP Fatal error:  Call to undefined function xml_parser_create() in /var/www/html/pmb/classes/XMLlist.class.php on line 262)

Installer l'extension php5.6-xml manquante

apt-get install php5.6-xml
service apache2 restart

Afficher à nouveau la page d'accueil de PMB http://localhost/pmb

Se connecter avec le compte bibli et le mot de passe bibli

Un message d'erreur indique que l'identification est incorrecte

Dans phpMyAdmin, on peut constater que la table Users de contient qu'un seul utilisateur nommé admin

Se connecter avec le compte admin et le mot de passe admin

Un message indique que la base n'est pas à jour

Aller dans le menu Administration/Modules/Outils/M. à J. base

(Cliquer ici pour commencer la mise à jour.)
(Cliquer ici pour poursuivre..., plusieurs fois)
(Mise-à-jour réussie vers v5.28 !)

Le logiciel est installé et prêt à être utilisé

(Selon les fonctions utilisées, il pourra être nécessaire d'installer d'autres extensions PHP)

Pour ne plus afficher la licence au démarrage, éditer les les paramètres pour l'utilisateur, en cochant J'ai lu et accepté les termes de la licence d'utilisation de PMB..

Utilisation de PMB

Pour rechercher une notice à partir de son code ISBN, aller dans le menu Catalogue/Externe/Z39.50, sélectionner une ou plusieurs bibliothèques et saisir un code ISBN à rechercher.

Le bouton Rechercher lance la recherche mais celle-ci n'aboutit pas (reste bloqué lors de la tentative de connexion au serveur).

Un message d'erreur est visible dans les logs d'apache

tail /var/log/apache2/error.log
(PHP Fatal error:  Call to undefined function yaz_connect() in /var/www/html/pmb/catalog/z3950/z_progression_cache.php on line 231)

Installer yaz à l'aide de pecl

pecl install yaz

Un message d'erreur indique que la commande phpsize a échouée. Il faut installer php5.6-dev

apt-get install php5.6-dev

Tester à nouveau l'installation de yaz via pecl

pecl install yaz

Un message d'erreur indique que YAZ n'est pas trouvé. Il faut également installer libyaz4-dev

apt-get install libyaz4-dev

Installation à nouveau yaz via pecl

pecl install yaz

Suivre l'indication donnée à la fin de l'installation : éditer le fichier /etc/php/5.6/apache2/php.ini et ajouter la ligne suivante juste après [PHP] :

extension=yaz.so

Redémarrer apache et vérifier que l'extension yaz apparaît dans la page http://localhost/phpinfo.php

service apache2 restart

Faire une nouvelle recherche dans le menu Catalogue/Externe/Z39.50.

En sélectionnant toutes les bibliothèques, on peut vérifier celles qui fonctionnent (certaines renvoient une erreur timeout, connect failed, connection lost ou autre)

Cliquer sur le bouton Résultats pour afficher les notices trouvées

Cliquer sur chaque notice pour voir son contenu, puis sur le bouton Intégrer la notice, si l'on souhaite l'ajouter à PMB (Entre chaque notice consultée, cliquer sur le lien Retour à la liste des résultats)

Sauvegarde des données de PMB

Dans le menu Administration/Modules/Sauvegarde, cliquer sur Groupe de tables, puis sur le groupe TOUT.

Cliquer sur Cocher tout puis enregistrer (afin que toutes les tables soient enregistrées lors de la sauvegarde).

Cliquer sur le bouton Lancement sauvegarde, cocher tout puis cliquer sur Lancer la sauvegarde (Le bouton Sauvegardes faites permet de retrouver la sauvegarde et de restaurer tout ou partie de ses tables si nécessaire).

Utilisation avancée de PMB

Dans le menu Circulation/Groupes de lecteurs, il est possible de générer un carte pour chaque lecteur, mais ça ne fonctionne pas par défaut (erreur 500, visible dans les logs d'apache)

tail /var/log/apache2/error.log
(PHP Fatal error:  Call to undefined function ImageCreate() in /var/www/html/pmb-prod/classes/barcode/barcode.php on line 89)

Installer l'extension php5.6-gd manquante

apt-get install php5.6-gd
service apache2 restart

La génération des cartes de lecteurs fonctionne désormais.