Vous n'êtes pas identifié(e).

#1 06/03/2018 06:20:44

rapy73
Membre

accès postgresql depuis une application

Bonjour,

je suis sous fedora 27
serveurs apache et postgresql tournent , php installé
j'ai fais une installation d' ERP/CRM dolibarr depuis mon navigateur firefox
j'avais rencontrer un problème d'accès entre l'installateur et postgresql, rien dans les logs
cela venait du fait que postgresql n'était pas à l"écoute du réseaux
note: tout est en local : localhost

j'ai modifié le fichier postgresql.conf

# - Connection Settings -

listen_addresses = 'localhost'

redémarrer le serveur postfresql  (visible dans les logs)

j'ai pu finir l'installation puisque la connexion se faisait.
j'ai eu le message d'erreur suivant à la fin de mon install, mais j'ai eu quand même le fénêtre de connection dans firefox

message d'erreur :

Erreur SQL DB_ERROR_SYNTAX ERREUR: 42601: erreur de syntaxe sur ou près de « ENGINE » LINE 1: ...int DEFAULT '0', entity integer DEFAULT 1 ) ENGINE=Inn... ^ LOCATION: scanner_yyerror, scan.l:1087

je n'ai pas réussis à me connecter

je reboote la machine

a nouveau plus possible de se connecter depuis dolibarr sur postgresql, rien dans les logs, comme si postgresql n'était à nouveau plus à l'écoute du réseau !!!
je vérifie mon postgresql.conf
listen_adresses = ' localhost'      est toujours présent et décommenté

Que dois je vérifier pour que postgresql soit à l'écoute de ce qui se passe sur le réseau, et ici en localhost ?

autre question : si vous pouvez m'expliquer le message d'erreur, qu'est-ce qui se passe, j'ai compris qu'il y avait une erreur de syntaxe mais .....     merci

merci pour votre aide

Dernière modification par rapy73 (06/03/2018 06:21:23)

Hors ligne

#2 06/03/2018 10:45:32

gleu
Administrateur

Re : accès postgresql depuis une application

L'erreur indiquée correspond à un problème syntaxique d'une requête SQL, pas à un problème de connexion.

Le problème survient avec "ENGINE=Inn". ENGINE est une clause inconnue dans la syntaxe PostgreSQL pour ce qui semble être une requête de création de table. Si j'extrapole, cela semble vouloir être "ENGINE=InnoDB". InnoDB est une technologie MySQL. Donc je pense qu'il y a un soucis au niveau de votre configuration Dolibarr qui prend la PostgreSQL pour une base MySQL.


Guillaume.

Hors ligne

#3 06/03/2018 11:27:08

rapy73
Membre

Re : accès postgresql depuis une application

Oui, après recherche d'après votre piste sur innodb, il y a un correctif à apporter à un fichier de configuration de l'installateur
mais j'ai en plus un problème de connexion à postgresql comme expliqué précédemment

En désactivant SElinux postgresql écoute le réseau

je peux lancer l'intall pour la 2e fois avec le correctif innodb

voici ce que j'obtiens à l'étape n°2
message d'erreur

Création des fonctions
Request 788 : DROP FUNCTION date_format(timestamp without time zone,text); 
Erreur SQL DB_ERROR_42883 ERREUR: 42883: la fonction date_format(timestamp without time zone, text) n'existe pas LOCATION: LookupFuncName, parse_func.c:1925 

je peux passer à l'étape suivante et l'installation se termine bien, je peux me connecter à dolibarr avec mes identifiants
ça avance

une idée pour le message d'erreur à résoudre ?

restera à trouver pourquoi SElinux sous fedora pose des problèmes à postgresql pour écouter sur le réseau, sans doute des droits à revoir pour postgresql dans SElinux

merci de votre aide, bonne journée

Dernière modification par rapy73 (06/03/2018 12:10:57)

Hors ligne

#4 06/03/2018 12:04:34

gleu
Administrateur

Re : accès postgresql depuis une application

Ces logs ne montrent que des accès réussis. Donc difficile de dire ce qui ne va pas uniquement avec ça. Par contre, si vous attendez des connexions extérieures (ie, pas sur localhost), vous devez configurer listen_adresses en adéquation.


Guillaume.

Hors ligne

#5 06/03/2018 12:12:53

rapy73
Membre

Re : accès postgresql depuis une application

il y a bien une ERREUR SQL.... Pourquoi considérez-vous cette ligne comme "réussit" ?

merci

Hors ligne

#6 06/03/2018 12:38:19

rjuju
Administrateur

Re : accès postgresql depuis une application

rapy73 a écrit :

il y a bien une ERREUR SQL.... Pourquoi considérez-vous cette ligne comme "réussit" ?

merci

Parce que gleu répondait à votre message initial, que vous avez édité après sa réponse.


Pour répondre à votre nouveau message, le problème est du au script d'install dolibarr.  Il devrait effectuer un DROP FUNCTION IF EXISTS, disponible depuis la versoin 8.2 de postgres.

Hors ligne

#7 06/03/2018 12:47:27

gleu
Administrateur

Re : accès postgresql depuis une application

Très très mauvaise pratique d'éditer un message après l'avoir envoyé. Autant en écrire un autre, sinon on ne comprend plus rien à la discussion.


Guillaume.

Hors ligne

#8 06/03/2018 12:53:27

rapy73
Membre

Re : accès postgresql depuis une application

Ok,

Bon reste encore le problème de SElinux à résoudre
puis une bonne formation à Postgresql :-)
Si je trouve quelque chose concernant l'erreur et une modif possible dans un fichier d'installation avec votre suggestion ( DROP FUNCTION IF EXISTS), je posterai ici, ça peut servir pour d'autres installateur de dolibarr

merci pour votre aide précieuse, j'ai compris pas mal de choses pour ma 1ere installation de Postgresql.

comment on passe le sujet en résolu ?

Dernière modification par rapy73 (06/03/2018 12:56:26)

Hors ligne

#9 06/03/2018 12:57:19

rjuju
Administrateur

Re : accès postgresql depuis une application

Les lignes à modifier sont ici : https://github.com/Dolibarr/dolibarr/bl … ql#L27-L30


Idéalement il faudrait que cela soit corrigé dans le projet, même si techniquement cette erreur n'empêche pas l'installation de dolibarr.

Hors ligne

#10 06/03/2018 14:34:41

rapy73
Membre

Re : accès postgresql depuis une application

Super, merci pour l'info, je vais regarder si je peux modifier le fichier d’installation comme indiqué, puis relancer une install

Juste pour comprendre: si je laisse dans l'état, est-ce que je vais avoir des problèmes de format de date dans mes tables ?

merci

Hors ligne

#11 06/03/2018 14:55:13

rjuju
Administrateur

Re : accès postgresql depuis une application

Non, aucun problème.  Le script d'installation tente de supprimer un objet qui n'existe pas avant d'essayer de le remplacer.  Dans tous les cas vous avez l'objet à la fin du script.  Pour vous en assurer, vous pouvez vérifier que les fonctions date_format() existent bien sur la base de destination.

Hors ligne

#12 06/03/2018 19:31:01

rapy73
Membre

Re : accès postgresql depuis une application

SElinux problème réglé

Dans le tuto de dolibarr ça parle de SElinux avec une commande qui ne fonctionne pas sous fedora 27, mais qui donne une information importante "httpd"
Je croyais que SElinux posait un problème de connexion réseau à postgresql alors que SElinux posait ce même problème à Apache
J'ai contourné la difficulté de la programmation SElinux en installant un outil graphique de gestion SElinux
dnf install policycoreutils-gui

laisser le mode actuel sur : Autoritaire
puis aller dans la partie "booléan" et activer l'option :
Apache    Autoriser les scripts et modules HTTPD à se connecter au réseau      httpd_can_network_connect

on ferme l'outil graphique simplement
Dollibarr se lance sans problème
au reboot idem

Hors ligne

Pied de page des forums