====== 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 '' >/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.