Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    février 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : février 2003
    Messages : 70
    Points : 47
    Points
    47

    Par défaut Connexion via apache impossible mais ok en ligne de commande

    Bonjour,

    Il m'est impossible d'établir une connection à ma base de donnée PostgreSql via Apache. Par contre ok en ligne de commande. Là je cale
    Le code est des plus basique, je l'ai simplifié à l'extrème

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
     
    	echo "test de connexion \n";
     
    	$connection = pg_connect("host='localhost' port=5432 dbname='name_database' user='name_user' password='*****'") or die("impossible de se connecter PostGreSql ");
     
    	echo "connection passée \n";
     
     
    ?>
    J'ai essayé de récupérer une erreur en utilisant pg_last_error, mais rien çà s'arrête au moment de la connexion

    Voici configuration PHP, je suis sous Fedora 16
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    PDO
    PDO support	enabled
    PDO drivers 	pgsql, sqlite
     
    pdo_pgsql
    PDO Driver for PostgreSQL	enabled
    PostgreSQL(libpq) Version 	9.1.3
    Module version 	1.0.2
    Revision 	$Id$
     
    pdo_sqlite
    PDO Driver for SQLite 3.x	enabled
    SQLite Library 	3.7.7.1
     
    pgsql
    PostgreSQL Support	enabled
    PostgreSQL(libpq) Version 	9.1.3
    Multibyte character support 	enabled
    SSL support 	enabled
    Active Persistent Links 	0
    Active Links 	0
     
    Directive	Local Value	Master Value
    pgsql.allow_persistent	On	On
    pgsql.auto_reset_persistent	Off	Off
    pgsql.ignore_notice	Off	Off
    pgsql.log_notice	Off	Off
    pgsql.max_links	Unlimited	Unlimited
    pgsql.max_persistent	Unlimited	Unlimited
    Un problème de droits? je ne sais plus...
    Merci pour vos idées
    Spiale

  2. #2
    Membre Expert
    Avatar de Gecko
    Homme Profil pro Antoine Pous
    Développeur Web
    Inscrit en
    février 2011
    Messages
    228
    Détails du profil
    Informations personnelles :
    Nom : Homme Antoine Pous
    Âge : 29
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2011
    Messages : 228
    Points : 1 365
    Points
    1 365

    Par défaut

    Salut!

    Je vois que tu as le support de PDO actif, je te suggère de l'utiliser
    Code php :
    $pdo = new PDO('pgsql:host=localhost;dbname=name_database;','user','password');

    L'avantage de PDO est que les requêtes sont plus simples à gérer et tu peux changer le SGBD de ton application sans avoir de problèmes majeurs

    La doc officielle: http://php.net/manual/fr/book.pdo.php

    Ensuite si ta base est en UTF-8 il faut que tu indique l'encodage lors de la connexion, sinon ça plante
    Code php :
    $pdo = new PDO('pgsql:host=localhost options=\'--client_encoding=UTF-8\';dbname=name_database;','user','password');

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    février 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : février 2003
    Messages : 70
    Points : 47
    Points
    47

    Par défaut

    Le blocage vient de SELinux, le système de sécurité. La solution est de permettre aux modules d'apache d'accéder aux réseaux tcp sur tous les ports.

    Code :
    #setsebool -P httpd_can_network_connect on
    L'option -P permet de rendre la directive permanente.

    Je vais regarder PDO maintenant

    A+
    Spiale

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •