social.sokoll.com

AIDE Informatique


Bouteille à la mer : je cherche de l'aide pour installer le serveur Z3950 de PMB ....

Merci de faire tourner la bouteille ;-)

#informatique #PMB #SIGB #bibliothèque #Z3950 #server
@Emmanuel Florac @Simon Poi
C'est @♻ Citoyen Candide ☮ qui gagne le prix ! Oui, PMB est un logiciel de gestion de fond documentaire, un SIGB : Système Intégré de Gestion de Bibliothèque.
Chaque ouvrage fait l'objet d'une fiche informatique le décrivant, on appelle cela une notice. C'est parfois succin, parfois très détaillé.
La BNF met à disposition des autres bibliothèque les notices de son fond documentaire par le biais d'un serveur Z35.50.

PMB peut être client Z39.50 est télécharger les notices. Ça, c'est facile je sais faire.
Mais PMB, peut aussi devenir un serveur Z39.50 et mettre à disposition son fond. C'est ce que je veut faire. Malheureusement, la doc officielle n'est plus à jour et j'y entend rien en requête Z39.50 (qui est une norme d'échange) ...

Mais !!!! @nissuak@diaspora.psyco.fr, si tu ne m'offre pas sur un plateau le comment installer le serveur Z39 de PMB, tu m'offres la possibilité d'analyser les log. Merci !!!!! (et même si c'est vieux, ça fonctionne vachement bien !)
Par contre, Bibdata ne m'intéresse pas, PMB fait déjà ça. Mais le détail des requête Z39 de la BNF, cela peut m'aider à analyser les erreurs de mes propre requête.
Merci à tous pour les repartages !
@Simon Poi Pour infos : Debian 10.
redj2 diaspora

👌🏽

nissuak diaspora
@Vincent Valentine J'ai crus que c'etait que du #20-Doses ... bloquage direct... ce qui ne me prive surtout pas de debloquer aussi... :)!
Connaissais pas ce type de serveur... G juste survole le sujet, sorry:)?
C pas @Gerard Mensoif qui a gagne... alors ... + 1 point ?
@Gérard Mensoif Non, il n'y a pas toutes les informations, celle concernant l'installation du serveur Z39 n'existe pas dans leur doc. Je parle de serveur, pas de client ! Et si la doc existait chez eux, je ne lancerai pas de bouteille à la mer ...

@nissuak@diaspora.psyco.fr Je ne sais pas ce qu'est #20-Doses ... Et non, Gérard ne fait que de me renvoyer vers la doc officielle ... Lue et relue sans trouver ce que je cherche, puisque ce n'est pas documenté.
nissuak diaspora
@Vincent Valentine Okay, ok!
#20-Doses ... Windoze... et tu fais quoi avec ca au fait? Interessant sinon.
comment on passe de 20-doses à windows ?
20/20 tu win ?

je m'était douté que ça se référait Microsoft, mais je ne voyait pas le lien. Merci pour ton décryptage, kaussin ^^
nissuak diaspora
Ach, che suis trahi:)! Oui c'etait une blague pourrite... trouvee sur une boite de produit lessive^^. J'ai la photo qque part, a mettre comme avatar petre:)?
Suis sur un initramfs et je patauge grqve, suite a une grosse connerie perso:(! @++
AH ! Vingt Dose ! Hihihi, pas mal. :-)

Arf, je touche pas au coeur des SE, donc pour moi initramfs c'est inabordable ^^

Oui, c'est intéressant. Je suis prestataire de service (je démarre) et installer des SIGB fait partie de mes services. Je me suis spécialisé sur PMB car je trouve qu'il est vraiment bien conçu, relativement bien documenté, stable (V7 maintenant), open source et français... ce qui pour avoir un minimum de doc est pas du luxe ! Y a même un réseau sociale privé des utilisateurs de PMB.

Transformer une base PMB isolé en diffuseur de notice, c'est un bonus pour mon taf. Pas obligatoire, mais arguments supplémentaire. Mais c'est bien galère à faire. Parce qu'il n'y a pas de serveur Z39.50 "générique", ce n'est qu'un protocol qui est plus ou moins bien implémenté dans le logiciel. Certains SIGB ne le fond pas du tout, d'autre le font de base, mais sont propriétaire et payant, ou alors tellement mal documenté ...

Là, y a une doc obsolète (qu'on ne trouve pas sur leur site, mais dans l'archive de PMB) qui m'a permet de compiler le serveur, qui se lance, mais qui me renvoie des 404 à chaque fois qu'un client s'y connecte pour faire une recherche.

On verra bien où ça me mène.
@nissuak@diaspora.psyco.fr Ton lien m'aura au moins permis de comprendre les attributs que je voyais passer ... Mais comme chaque logiciel implémente la norme du Z39 à sa manière, ça ne me débloque pas. Ici, c'est du PHP avec la bibliothèque PHP-Yaz.

Extrait de la doc "Pour fonctionner, le serveur fait appel au script PHP export_z3950.php de PMB. Ce script est utilisé pour renvoyer la liste des notices correspondantes à la recherche z3950 au serveur ainsi que les notices elles même au format UNIMARC quand le serveur le demande. Pour appeler le script, le serveur utilise le protocole HTTP en faisant un GET sur le serveur web où est
installé PMB."

Évidemment, j''ai tout sur le même serveur. Mais malgré cela, ça fait plouf ...

Pour infos, voici le message d'erreur côté serveur :
19:02:48-13/10 yaz-ztest(5) [request]POST /base-pmb HTTP/1.1 19:02:48-13/10 yaz-ztest(5) [request]SRWSearch base-pmb ERROR info:http/404 - 1+0 pqf: @attr 1=4 @attr 4=1 "vignemale" 19:02:48-13/10 yaz-ztest(5) [session]Connection closed by client 19:02:48-13/10 yaz-ztest(5) [session]Connection closed - end of session
@Vincent Valentine le script envoie une requête à la mauvaise URL, ça fait un 404. Regarde dans le log du serveur HTTP ce qu'il envoie, et dis-nous.
Un doute m'assaille :
ls -la /var/log/apache2/error.log 
ls: cannot access '/var/log/apache2/error.log': Permission denied

On ne peut pas y accéder directement ?? Faut un outils pour les lires ?
@Vincent Valentine bah non. Faut être root ou bien www-data.
Je découvre que sudo ne fonctionne pas avec ^^ Faut vraiment être root !

Bon, du coup, j'ai ça dans /var/log/apache2/access.log :
::1 - - [15/Oct/2020:19:17:51 +0000] "OPTIONS \* HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) OpenSSL/1.1.1d (internal dummy connection)"

et sur le client : /var/log/apache2/access.daguerreo.log :
176.141.234.9 - - [15/Oct/2020:19:17:45 +0000] "GET /javascript/notification.js HTTP/1.1" 404 497 "[url=http://daguerreo.mideel.fr/catalog/z3950/z_progression_visible2.php?last_query_id=164&tri1=&tri2=&selection_bib=where%20bib_id%20in%20]http://daguerreo.mideel.fr/catalog/z3950/z_progression_visible2.php?last_query_id=164&tri1=&tri2=&selection_bib=where%20bib_id%20in%20[/url](22)%20&clause=22&id_notice=0" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0"
Daguerro est le client Z39.
le log daguerro me montre ce qu'il se passe sur le client, c'est bien le début de l'adresse de l'interface de recherche.

c'est le log access.log qui du coup peut être intéressant. non ?
Bizarre, pas de error.log qui s'écrit quand je lance la requête, juste le access.log et le access.daguerreo.log:
/var/log/apache2# ls -la | grep "Oct 15" 
drwxr-x---  2 root adm   12288 Oct 15 00:00 . 
drwxr-xr-x 10 root root   4096 Oct 15 00:00 .. 
-rw-r-----  1 root adm  399277 Oct 15 19:41 access.daguerreo.log 
-rw-r-----  1 root adm   11855 Oct 15 19:41 access.log 
-rw-r-----  1 root adm   19413 Oct 15 19:39 access.lourdes.log 
-rw-r-----  1 root adm    4653 Oct 15 19:35 error.daguerreo.log 
-rw-r-----  1 root adm    1624 Oct 15 09:30 error.log 
-rw-r-----  1 root adm    9519 Oct 15 00:00 error.log.1 
-rw-r-----  1 root adm    2986 Oct 15 19:24 other_vhosts_access.log
ma commande pour lancer mon serveur est :
sudo ./yaz-ztest -c ~/zserver.ini tcp:lourdes.webcaf.fr:210 
18:44:38-15/10 [server] Adding dynamic listener on tcp:lourdes.webcaf.fr:210 id=0 PID=10302

Je suis dans /usr/local/bin ~/zserver.ini est le paramètre de config, ensuite on a l'adresse du serveur
Alors, comme j'ai tout sur le même VPS avec des noms de domaines différents, j'ai essayé avec localhost partout, dans mon fichier de conf et dans la conf du client.
Je progresse, le message d'erreur du serveur Z39 évolue à ça :
$ sudo ./yaz-ztest -c ~/zserver.ini tcp:localhost:210 
20:00:21-15/10 [server] Adding dynamic listener on tcp:localhost:210 id=0 PID=11772 
20:01:25-15/10 yaz-ztest(1) [session] Session - OK 1 tcp:::1 PID=11791 
20:01:25-15/10 yaz-ztest(1) [request] Auth none 
20:01:25-15/10 yaz-ztest(1) [request] Init OK - ID:81 Name:PHP/ZOOM-C/YAZ Version:5.30.3 2af59bc45cf4508d5c84f350ee99804c4354b3b3 
20:01:25-15/10 yaz-ztest(1) [request] Search pmb_pmb ERROR 109 1 1+0 RPN @attrset Bib-1 @attr 4=1 @attr 1=4 vignemale

Le client me donne cette erreur : Echec lors de la recherche : Database unavailable, pmb_lourdes

Donc il ne trouve pas la base pmb_lourdes, ce que je ne comprends pas, c'est que c'est une base généré à la volé pour exporter un résultat. Un problème de droit d'écriture ?
@Vincent Valentine ah ouais c'est un vrai bordel ta config :) En tout cas c'est /javascript/notification.js qui fait un 404.
Et les autres messages sont totalement mystérieux. Incompréhensible, les messages sont totalement cryptiques...
Ok.
C'est la dernière ligne que j'ai copié, mais en fait, y en une pour chaque script appelé et ils sont tous du même ordre : 404 à chaque fois ....

En tout cas, merci de l'aide apportée.
@Vincent Valentine pour les 404 il doit y avoir une configuration apache à faire, ou un lien symbolique éventuellement (genre ln -s /usr/local/machin/javascript /var/www/javascript )
Ouep, c'est possible.
Bon, long week-end qui arrive, je reprendrai mes expériences plus tard.
Merci des conseils en tout cas.
nissuak diaspora
@Vincent Valentine Fait peut-etre un autre poste 'Aide' avec le nouveau sujet? T'as des bons ici comme sur Frama^^!
Peut être. Je verrai ça bientôt. Là, je vais profiter du beau temps ;-)
nissuak diaspora
Confine des 21h demain soir:(! Ou je descend chez un mes beaux-enfants...:)?
Fuis !!!! Fuis !!!! Et vive la nature !
nissuak diaspora
Ah, si seulement je pouvais tout de suite... :)!
@Emmanuel Florac Re-hello !
Comme le problème d'aujourd'hui venait d'un problème de redirection d'un dossier javascript et qu'ici, ont cherche aussi les JS, je me suis dis que ... Mais non, ça ne fonctionne pas. sniff
Ici, la requête GET va cherché un fichier JS dans un dossier /javascript/
Le fichier JS est bien dans le dossier, le chemin du message d'erreur est le bon.
86.235.15.109 - - [12/Nov/2020:10:29:47 +0000] "GET /javascript/popup.js HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0"

Et là, je me demande bien pourquoi il ne le trouve pas, vu qu'il n'y a pas de redirection vers un autre dossier javascript ...