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)
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
apt-get install apache2
Tester apache en affichant la page http://localhost
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
apt-get install mariadb-server
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
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..
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)
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).
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.