« Installation d'un serveur Pmb » : différence entre les versions

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
(aire grossit)
Ligne 205 : Ligne 205 :
chercher le bloc de lignes :  
chercher le bloc de lignes :  
<code>//$expl['section'] = $info_995[$nb_expl]['q']; à chercher dans docs_section
<code>//$expl['section'] = $info_995[$nb_expl]['q']; à chercher dans docs_section
$data_doc=array();
$data_doc=array();
$info_995[$nb_expl]['q']=trim($info_995[$nb_expl]['q']);
$info_995[$nb_expl]['q']=trim($info_995[$nb_expl]['q']);
if (!$info_995[$nb_expl]['q'])
if (!$info_995[$nb_expl]['q'])
$info_995[$nb_expl]['q'] = "u";
$info_995[$nb_expl]['q'] = "u";
 
$data_doc['section_libelle'] = $section_995[$info_995[$nb_expl]['q']];
$data_doc['section_libelle'] = $section_995[$info_995[$nb_expl]['q']];
$data_doc['sdoc_codage_import'] = $info_995[$nb_expl]['q'] ;
$data_doc['sdoc_codage_import'] = $info_995[$nb_expl]['q'] ;
if ($sdoc_codage) $data_doc['sdoc_owner'] = $book_lender_id ;
if ($sdoc_codage) $data_doc['sdoc_owner'] = $book_lender_id ;
else $data_doc['sdoc_owner'] = 0 ;
else $data_doc['sdoc_owner'] = 0 ;
$expl['section'] = docs_section::import($data_doc);</code>
$expl['section'] = docs_section::import($data_doc);</code>
et remplacer les "<nowiki>['q']</nowiki>" par des <nowiki>"['j']"</nowiki>


et remplacer les "<nowiki>['q']</nowiki>" par des <nowiki>"['j']"</nowiki>
===Sauvegarde automatisée===
===Sauvegarde automatisée===
Planifiez une sauvegarde de préférence lorsque tout vos utilisateurs, lecteurs & bibliothécaires, ont cessé d'utiliser Pmb disons une trentaine de minutes après la fermeture de votre bibliothèque. C'est la raison pour laquelle ce script comporte une commande shutdown -h now qui automatise la fermeture du serveur puisqu'en théorie plus personne ne se trouve dans les locaux pour éteindre le serveur lorsque la sauvegarde est terminée.
Planifiez une sauvegarde de préférence lorsque tout vos utilisateurs, lecteurs & bibliothécaires, ont cessé d'utiliser Pmb disons une trentaine de minutes après la fermeture de votre bibliothèque. C'est la raison pour laquelle ce script comporte une commande shutdown -h now qui automatise la fermeture du serveur puisqu'en théorie plus personne ne se trouve dans les locaux pour éteindre le serveur lorsque la sauvegarde est terminée.

Version du 18 janvier 2013 à 11:25

Dernière màj de la procédure en janvier 2013 sur la distribution Debian Squeeze 6.0.6 stable et le package PMB4.0.2

Tutoriel proposé par LaurentBDP976 La version PDF de ce tutoriel est dispo @ http://download.tuxfamily.org/biblinuxiens/doc/

Préambule

Cette documentation considère que votre distribution Debian/Ubuntu est opérationnelle, que le réseau est configuré correctement, ainsi que l'accès à l'internet. Utilisez une distribution Debian stable.

Si vous avez choisi Ubuntu vous veillerez à activer le compte root sinon vous perdrez beaucoup de temps à sudoyer le système pour installer votre PMB. Les commandes décrites dans cette doc devant alors être précédées de la commande sudo. Il me parait donc moins fastidieux de réactiver le compte root. Ouvrez donc un shell et tapez : biblio@ServeurPMB:~$ sudo passwd root Le shell vous demande d'entrer un nouveau mot de passe pour le compte root, vous le lui donnez et hop le compte est actif. a Les utilisateurs peu familiers avec l'éditeur vi pourront utiliser gedit, s'il n'est pas installé, faites le avec la commande : root@ServeurPMB:~# aptitude install gedit Dans ce cas, les lignes de code décrites dans cette doc sous la forme : root@ServeurPMB:~# vi /dossier/fichier devront être interprétées : root@ServeurPMB:~# gedit /dossier/fichier /!\ attention, gedit ou tout autre éditeur de texte tributaire d'une interface graphique ne vous permettra pas d'administrer votre serveur à distance avec ssh par exemple. Je vous recommande donc de vous familiariser avec un éditeur en ligne de commande tel que vi, nano, emacs...

Configurer les ressources Debian

Nous devons configurer aptitude, le gestionnaire de packages de la distribution Debian afin qu'il accède aux ressources dont nous avons besoin. Nous allons donc modifier certaines adresses dans le fichier le fichier sources.list. Vous trouverez celui-ci dans le répertoire /etc/apt/ Ouvrez un shell , à l'invite de commande et logez vous sur le compte rooten tapant : biblio@ServeurPMB:~$ su Le prompt du shell vous demande alors le mot de passe du root, entrez le, puis éditez le sources.list : root@ServeurPMB:~# vi /etc/apt/sources.list ajoutez ces lignes afin d'accéder plus tard aux ressources du module YAZ nécessaire pour l'accès aux serveurs Z39.50

deb http://ftp.indexdata.dk/debian squeeze main

profitez-en aussi pour intégrer les ressources debian.fr

deb http://ftp.fr.debian.org/debian/ squeeze main

et commentez les autres dépots #deb http://ftp.debian.org/debian/ squeeze main

  1. deb-src http://ftp.debian.org/debian/ squeeze main

Enregistrer et quitter vi (touche esc puis :wq).

A propose de Yaz, après avoir modifié le sources.list il faut charger la clé indexdata nécessaire elle aussi pour l'installation de Yaz: wget http://ftp.indexdata.dk/debian/indexdata.asc root@ServeurPMB:~# apt-key add indexdata.asc

Puis mettez à jour votre gestionnaire de packages

root@ServeurPMB:~# aptitude update

Les ressources officielles pour php-yaz :

[http://www.indexdata.dk] [ftp://ftp.indexdata.dk/pub/debian/dists]

Installation du serveur Apache

Plusieurs solutions s'offrent à nous, installer apache2-mpm-worker ou apache2-mpm-prefork ? Worker est réputé plus rapide, Prefork est plus stable à vous de voir... Toujours dans votre shell en mode root tapez : root@ServeurPMB:~# aptitude install apache2-mpm-prefork Nous devons éditer le fichier apache2.conf qui se trouve dans le répertoire /etc/apache2 : root@ServeurPMB:~# vi /etc/apache2/apache2.conf ajoutez la ligne : ServerName 127.0.0.1 Enregistrer et quittez vi puis, lancez votre navigateur www sur localhost ou sur l'adresse IP de votre serveur : [[1]] ou [[2]] Une fenêtre ?? It Works ! ?? s'ouvre et vous informe que Apache fonctionne correctement .

Installer MySQL5

/!\ le package mysql-server-5.5 n'est pas intégré à la version stable de Debian actuellement la 6.0.6 Ce sera probablement le cas lorsque Debian 7 actuellement en phase de test sera déclarée stable probablement au début de cette année.

Téléchargez et installez le serveur mySQL avec la commande : root@ServeurPMB:~#aptitude install mysql-server-5.1 Une fois les packages installés, nous devons configurer un mot de passe pour le root mySQL, il est courant que celui ci vous soit demandé directement lors de l'installation du serveur, si ça n'est pas le cas ou si vous désirez changer ce mot de passe ultérieurement, entrez la commande : root@ServeurPMB:~# dpkg-reconfigure mysql-server-5.1 Une interface graphique minimaliste s'offre à vous alors, entrez-y alors le mot de passe que vous avez choisi. Puis validez.

Petit rappel : la touche TAB [<=>] du clavier permet de naviguer jusqu'au bouton ok ;-)

/!\ ATTENTION  : lorsque ce mot de passe vous sera demandé par la suite, ne confondez pas le compte root mySQL et le root de votre système Linux ! Ici nous avons configuré le mot de passe root du service mySQL. Une solution de facilité consiste à choisir le même mot de passe pour les deux, bien que ce ne soit pas très recommandable en terme de sécurité.

Editez le fichier /etc/mysql/my.cnf root@ServeurPMB:~# vi /etc/mysql/my.cnf et cherchez la ligne max_allowed_packet et changez la valeur en max_allowed_packet = 250M 250 Mo devraient convenir à une petite bibliothèque, mais si par la suite votre base grossit, vous devrez modifier une nouvelle fois cette valeurs. Redémarrez mySQL afin de prendre en compte ces nouveaux paramètres avec  : root@ServeurPMB:~# /etc/init.d/mysql restart

Php5 et ses extensions

Nous devons installer le package php5 ainsi que ses extensions php5-gd, php5-yaz, php5-xsl, php5-curl.

/!\ Attention, vous devez avoir modifié /etc/apt/sources.list comme indiqué au chapitre 2) Configurer les ressources Debian pour que php5-yaz s'installe correctement. root@ServeurPMB:~# aptitude install php5 Installez maintenant les extensions Php5 : root@ServeurPMB:~# aptitude install php5-gd php5-yaz php5-xsl php5-curl Un message d'avertissement peut apparaitre : ATTENTION : des versions non certifiées des paquets suivants vont être installées. Des paquets non certifiés peuvent compromettre la sécurité de votre système. Vous ne devriez les installer que si vous êtes certain que c'est bien votre intention. php5-yaz libyaz3 Voulez-vous ignorer cet avertissement et continuer quand même ? Pour continuer, entrer «  Oui  » . Pour interrompre l'installation, entrer «  Non  » : Pas de panique ! vous pouvez taper Oui.

Nous configurons maintenant Php5, nous avons besoin d'écrire quelques modifications dans le fichier php.ini situé dans /etc/php5/apache2/. La commande pour l'éditer est : root@ServeurPMB:~# vi /etc/php5/apache2/php.ini Rechercher et modifier les paramètres ci dessous en fonction de votre base et augmenter considérablement le max_execution_time : max_execution_time = 3600 ; Maximum execution time of each script, in seconds memory_limit = 512M ; Maximum amount of memory a script may consume (8MB) post_max_size = 512M upload_max_filesize = 512M.

Ces paramètres devraient convenir à la plupart des bibliothèques. Dans le cas de grosses structures possédant des fonds documentaires importants, les ré-indexations de la base peuvent durer plusieurs heures, le max_execution_time devra donc être porté à 36000.

Redémarrez le serveur Apache : root@ServeurPMB:~# /etc/init.d/apache2 restart Pour vérifier que votre serveur PHP fonctionne correctement, créez le fichier phpinfo.php dans le dossier /var/www : root@ServeurPMB:~# vi /var/www/phpinfo.php il doit contenir : <?php phpinfo(); ?> Ensuite, lancez votre navigateur sur : [[3]] ou [[4]] Vous devriez voir s'afficher quelque chose qui ressemble à :

[fix me : coller un print screen de phpinfo.php]

PhpMyAdmin

PhpMyAdmin n'est pas nécessaire au bon fonctionnement de Pmb mais vous sera utile pour gérer facilement votre base MySql par le biais d'une interface php conviviale que vous lancerez depuis votre navigateur favori, Firefox par exemple (ceux qui ont répondu Internet Explorer sont priés de sortir). root@ServeurPMB:~#aptitude install phpmyadmin Puis tapez dans la barre d'adresse de votre navigateur : root@ServeurPMB:~#localhost/phpmyadmin L'interface web de PhpMyAdmin se lance, entrez votre mot de passe root mysql défini au chapitre 4) installez MySQL  ». Pour en savoir plus sur PhpMyAdmin : [[5]]

Installation de PMB

L'archive PMB

Téléchargez l'archive PMB depuis le site [[6]] La version courante est PMB 4.0.2.zip. Une fois le téléchargement terminé, ouvrez un shell et logez vous sur le compte root : biblio@ServeurPMB:~$ su Le shell vous demande d'entrer le mot de passe du root (le root Linux et non pas le root MySQL), faites le puis déplacez vous vers le dossier ou se trouve l'archive : root@ServeurPMB:~# cd /home/biblio/Bureau Enuite décompressez l'archive: root@ServeurPMB:~# unzip pmb4.0.2 -d /var/www/ Attention ! si le nom de votre fichier Zip contient un espace, il faut protéger celui ci par un \ sinon le bash n'interprètera pas celui ci comme partie du nom de fichier mais comme un séparateur entre deux arguments et vous renverra un message d'erreur du genre filename not matched) De manière générale, évitez d'utiliser des espaces dans les noms de fichier/dossier sous unix/linux. Par exemple, le fichier pmb 4.0.2.zip se décompresse avec la commande : root@ServeurPMB:~# unzip pmb\ 4.0.2.zip -d /var/www

Définir les droits d'accès à /var/www/pmb

Dans votre shell, toujours en mode root, déplacez vous dans le répertoire /var :

root@ServeurPMB:~# cd /var On définit le propriétaire du répertoire /www : root@ServeurPMB:~# chown -R www-data:www-data www Déplacez vous dans le répertoire www : root@ServeurPMB:~# cd www On définit les droits sur les fichiers : root@ServeurPMB:~# find -type f -exec chmod 0640 {} \; On définit les droits sur les dossiers : root@ServeurPMB:~# find -type d -exec chmod 0750 {} \;

Installation de la base Pmb

Lancez votre navigateur à l'adresse : [[7]] J'ai opté pour le charset iso 8859-1 La page d'installation comporte plusieurs ensembles de champs à renseigner.

Paramètres Système. Utilisateur MySQL : root Mot de Passe : Votre mot de passe root MySql tel que vous l'avez défini au chapitre 4 installer mysql5 Serveur : localhost Base de données : Nom de votre base, si vous n'entrez aucune valeur ici, ce sont les Paramètres PMB par défaut décrits ci dessous qui s'appliqueront. Paramètres PMB par défaut Utilisateur : bibli Base : bibli mot de passe : bibli Données PMB

Faîtes comme vous voulez, mais le "jeu minimum pour démarrer rapidement" est bien pratique ;)

Catégories et index :

Pour d'obscures raisons de charset iso et UTF8 plus ou moins en bons termes, je n'ai jamais réussi à installer correctement les catégories et les indexations décimales Dewey pré-configurées dans le package d'install, tous les caractères spéciaux se retrouvent à la fin de l'install remplacés par des caractères ésotériques indéchiffrables. Donc, pour l'instant je choisi aucun.

Il ne vous reste plus qu'à cliquer sur le bouton Créer la base, un message vous indique que la création des tables a réussi. Dans votre navigateur web tapez : http://localhost/pmb Si La page d'accueil de PMB s'affiche, auto-congratulez vous chaleureusement : vous avez brillamment réussi l'installation de votre serveur PMB/Linux.

Configuration post-install

Scripts d'import Unimarc

Les scripts d'import des paniers d'exemplaires unimarc dans /pmb/admin/import comportent une erreur de codage sur la section (995$j). Il vous faudra donc éditer votre script d'import et le modifier.

ex : root@ServeurPMB:~# vi /var/www/pmb/admin/import/func_bdp.inc.php chercher le bloc de lignes : //$expl['section'] = $info_995[$nb_expl]['q']; à chercher dans docs_section $data_doc=array(); $info_995[$nb_expl]['q']=trim($info_995[$nb_expl]['q']); if (!$info_995[$nb_expl]['q'])

			$info_995[$nb_expl]['q'] = "u";

$data_doc['section_libelle'] = $section_995[$info_995[$nb_expl]['q']]; $data_doc['sdoc_codage_import'] = $info_995[$nb_expl]['q'] ; if ($sdoc_codage) $data_doc['sdoc_owner'] = $book_lender_id ; else $data_doc['sdoc_owner'] = 0 ; $expl['section'] = docs_section::import($data_doc); et remplacer les "['q']" par des "['j']"

Sauvegarde automatisée

Planifiez une sauvegarde de préférence lorsque tout vos utilisateurs, lecteurs & bibliothécaires, ont cessé d'utiliser Pmb disons une trentaine de minutes après la fermeture de votre bibliothèque. C'est la raison pour laquelle ce script comporte une commande shutdown -h now qui automatise la fermeture du serveur puisqu'en théorie plus personne ne se trouve dans les locaux pour éteindre le serveur lorsque la sauvegarde est terminée. Le pipe vers gz n'est pas obligatoire.

Sauvegarde de la base

Créer le fichier sauvegarde.sh dans /root : ! /bin/bash

  1. Ce script enregistre un journal des évènements suivants :
  2. démarrage de la sauvegarde, messages d'erreurs et fin de la sauvegarde.
  3. dans /root/sauvegarde.log

echo "Démarrage sauvegarde du $(date)" >> /root/sauvegarde.log

  1. Nettoyage des vieilles sauvegardes et on garde la possibilité de rollback sur 10 jours :

mv /save/sauvegarde9.sql.gz /save/sauvegarde10.sql.gz 2>> /root/sauvegarde.log mv /save/sauvegarde8.sql.gz /save/sauvegarde9.sql.gz 2>> /root/sauvegarde.log mv /save/sauvegarde7.sql.gz /save/sauvegarde8.sql.gz 2>> /root/sauvegarde.log mv /save/sauvegarde6.sql.gz /save/sauvegarde7.sql.gz 2>> /root/sauvegarde.log mv /save/sauvegarde5.sql.gz /save/sauvegarde6.sql.gz 2>> /root/sauvegarde.log mv /save/sauvegarde4.sql.gz /save/sauvegarde5.sql.gz 2>> /root/sauvegarde.log mv /save/sauvegarde3.sql.gz /save/sauvegarde4.sql.gz 2>> /root/sauvegarde.log mv /save/sauvegarde2.sql.gz /save/sauvegarde3.sql.gz 2>> /root/sauvegarde.log mv /save/sauvegarde1.sql.gz /save/sauvegarde2.sql.gz 2>> /root/sauvegarde.log

  1. la commande de sauvegarde de la base :

mysqldump -u root -pMOTDEPASSE --opt BASE 2>> /root/sauvegarde.log | gzip > /save/sauvegarde1.sql.gz 2>> /root/sauvegarde.log

  1. On écrit dans le journal :

echo "Sauvegarde du $(date)terminée" >> /root/sauvegarde.log

  1. On éteint le serveur :

shutdown -h now

Rendez ce script exécutable : Root@ServeurPmb:~# chmod u+x sauvegarde.sh Editez la crontab pour planifier la fréquence de la sauvegarde root@serveurPMB:~# vi /etc/crontab # /etc/crontab: system-wide crontab

  1. Unlike any other crontab you don't have to run the `crontab'
  2. command to install the new version when you edit this file
  3. and files in /etc/cron.d. These files also have username fields,
  4. that none of the other crontabs do.

SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

  1. m h dom mon dow user command

17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) et ajoutez la ligne 30 18 * * * root /root/sauvegarde.sh pour une sauvegarde quotidienne à 18h30 par exemple

Restaurer la base

d'abord créer une base vide : ServeurPmb:~# mysql -u root -p password mysql> create database nomdelabase; mysql> exit on dezippe la sauvegarde : ServeurPmb:~# gunzip /save/sauvegarde.sql.gz puis on restaure : ServeurPmb:~# mysql -u root -pmotdepasse nomdelabase < /save/sauvegarde.sql