PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 27/08/2013 22:25:02

SWAT
Membre

Connexion distante vers le serveur [Debian 7.1- Ruby & Rails Pg 9.1]

Bonjour à tous,

Je cherche à me connecter sur la base postgreSQL 9.1 depuis le Web sur mon serveur distant.
Le serveur est un Debian 7.1 sur lequel j'ai installé Ruby & Rails puis PostgreSQL 9.1. lorsque je veux

rejoindre le serveur par un navigateur, il me répond :
PG::ConnectionBad
fe_sendauth: no password supplied


En parcourant les docs et forums divers, il est dit que s'il exite un user unix et une base de même nom, la

connexion par defaut s'établit. (Je pense qu'a distance c'est www-data qui etabli la connexion mais sans certitude)
Pour les besoin du TEST (et seulement dans ce cas la) j'ai créé une base "root", et je l'ai rattaché à ce

user
Voici l'installation dans son ensemble, suivi des commandes SQL réalisées et enfin le fichier pg_hba.conf

MERCI DE VOTRE AIDE à TOUS, j'ai surement fais quelque chose de travers. wink


INSTALLATION Serveur

##verif des sources

apt-get update
apt-get upgrade

##installation de Apache2 Ruby GEM postgresql

apt-get install apache2 ruby rubygems ruby-dev postgresql-9.1 libpq-dev
Préparation PostgreSQL

##definition du password du user Postresql

su postgres
psql -d template1
"template1=#" alter user postgres with encrypted password 'post';
/q

##Puis éditer pg_hba.conf

nano /etc/postgresql/9.1/main/pg_hba.conf

##modifier la ligne comme suit :

local  all  postgres  md5

##ctrl+o pour enregistrer puis ctrl+x pour quitter

##On se reconnect en Postgres

su postgres
psql

##On cré un utilisateur "root" puisque nous sommes en root, sinon créer un utilisateur debian
##puis donner son nom à l'utilisateur de posgresql et à la base de donnée :

postgres=# CREATE USER root;
ALTER ROLE root WITH CREATEDB;

##on cré la base de donnée "root" rattachée à l'utilisateur "root"

CREATE DATABASE root OWNER root;
ALTER USER root WITH ENCRYPTED PASSWORD 'essai';

## on quitte

\q

##On se reconnect en root

su -

##on lance la base root

psql root

##si : "root=>" connexion ok
## on quitte

\q

## Editer de nouveau pg_hba.conf

nano  /etc/postgresql/9.1/main/pg_hba.conf

##modifier la ligne comme suit :

host    all             all             0.0.0.0/0            md5

## enregistrer puis relancer le serveur

/etc/init.d/postgresql restart





Installation de Rails
gem install rake
gem install rails


##ajouter dans le PATH c'est à dire dans la liste des répertoires que votre Debian va parcourir à la

recherche des binaires

echo 

"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin" >> ~/.bashrc

## redemarrer

shutdown -r now

##Installer Passenger

gem install passenger

## sera demandé par Passenger

apt-get install libcurl4-openssl-dev apache2-threaded-dev libapr1-dev libaprutil1-dev

##Et nous le configurons

passenger-install-apache2-module

##Pour finir d'installer Passenger il suffit de créer un fichier de conf apache pour Ruby :

nano /etc/apache2/conf.d/ruby.conf

##Puis on saisie ces infos dans le fichier et on enregistre

LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.14/buildout/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.14
PassengerDefaultRuby /usr/bin/ruby1.9.1
Creation du projet

##Création du projet nommé "root"

cd /var/www
rails new root -d postgresql

## Pour que passenger fonctionne j'ai besoin d'ajouter à mon projet le gem "therubyracer".

cd /var/www/root
nano Gemfile

## Ajouté dans le fichier puis enregistrer

gem 'therubyracer'

##installer le Gem

bundle install
Paramètrage d'apache

##Pour cela nous allons modifier le site par défaut affiché par apache.

nano /etc/apache2/sites-enabled/000-default  

##Effacez tout le contenu et mettez ceci :

<Virtualhost *:80>
   DocumentRoot /var/www/root/public/
   RailsEnv development # Définie l'environnement de Rails (enlever ce commantaire dans le fichier)

   <Directory /var/www/root/public>
      Options ExecCGI FollowSymLinks
      Options -Multiviews
      AddHandler cgi-script .cgi
      AllowOverride all
      Order allow,deny
      Allow from all
   </Directory>

</Virtualhost>

## Enregistrez et faite un reload d'apache

/etc/init.d/apache2 reload 




FICHIER pg_hba.conf
# Database administrative login by Unix domain socket
local   all             postgres                                md5

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             0.0.0.0/0               md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5
  

Dernière modification par SWAT (27/08/2013 22:35:10)

Hors ligne

#2 28/08/2013 19:46:50

rjuju
Administrateur

Re : Connexion distante vers le serveur [Debian 7.1- Ruby & Rails Pg 9.1]

Bonjour,

je ne connais pas du tout rails, mais je ne vois nulle part de configuration de la connexion postgres.

Vous pouvez sinon regarder dans les log de postgres le message d'erreur lié à l'erreur de connexion, vous saurez alors quel utilisateur a été utilisé pour la tentative de connexion.

Hors ligne

#3 28/08/2013 21:46:43

SWAT
Membre

Re : Connexion distante vers le serveur [Debian 7.1- Ruby & Rails Pg 9.1]

Bonsoir rjuju,

merci de vous pencher sur mon problème, voici le contenu du fichier de log.

2013-08-27 22:17:38 CEST LOG:  lancement du processus autovacuum
2013-08-27 22:17:38 CEST LOG:  le syst?me de bases de donn?es est pr?t pour accepter les connexions
2013-08-27 22:17:38 CEST LOG:  paquet de d?marrage incomplet
2013-08-27 22:17:39 CEST FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << postgres >>
2013-08-27 22:17:39 CEST FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << postgres >>
2013-08-27 22:17:40 CEST FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << postgres >>
2013-08-27 22:17:40 CEST FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << postgres >>
2013-08-27 22:17:41 CEST FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << postgres >>
2013-08-27 22:17:41 CEST FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << postgres >>
2013-08-27 22:17:42 CEST FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << postgres >>
2013-08-27 22:17:42 CEST FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << postgres >>
2013-08-27 22:17:43 CEST FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << postgres >>
2013-08-27 22:17:43 CEST FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << postgres >>
2013-08-27 22:17:44 CEST FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << postgres >>
2013-08-27 22:17:44 CEST LOG:  paquet de d?marrage incomplet
2013-08-27 22:38:05 CEST FATAL:  annulation de l'authentification ? cause du d?lai ?coul?

Dois je créer un user debian "postgres" ainsi qu'une base "postgres" pour régler le problème ?
Ce qui m’inquiète également, c'est le paquet de démarrage incomplet.

Merci de votre aide.

Hors ligne

#4 28/08/2013 21:49:27

gleu
Administrateur

Re : Connexion distante vers le serveur [Debian 7.1- Ruby & Rails Pg 9.1]

Le message est très clair. Le mot de passe fourni par la connexion pour l'utilisateur postgres n'est pas le bon. Donc corrigez la chaîne de connexion pour qu'elle indique le bon mot de passe.


Guillaume.

Hors ligne

#5 28/08/2013 21:56:42

SWAT
Membre

Re : Connexion distante vers le serveur [Debian 7.1- Ruby & Rails Pg 9.1]

Bonsoir gleu,

désolé, mais je ne suis pas du tout à l'aise avec postgresQL, je débute et c'est ma première installation.

Cette ligne dans le pg_hba.conf ne le fait pas ? all -> n'est pas pour toutes les bases et tous les users ?

host    all             all             0.0.0.0/0               md5

Je sèche.

Hors ligne

#6 28/08/2013 22:18:16

rjuju
Administrateur

Re : Connexion distante vers le serveur [Debian 7.1- Ruby & Rails Pg 9.1]

Cette ligne indique que la connexion à votre postgres via une adresse IP doit se faire à l'aide d'un mot de passe. Il faut donc spécifier celui-ci dans votre application.

Hors ligne

#7 28/08/2013 22:26:18

SWAT
Membre

Re : Connexion distante vers le serveur [Debian 7.1- Ruby & Rails Pg 9.1]

Je comprends, erreur stupide de ma part, je vérifie cela et vous tiens informé.
Merci pour votre aide et votre temps.

Hors ligne

Pied de page des forums