Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & PostgreSQL
PHP & PostgreSQL Forum d'entraide sur PostgreSQL avec PHP. Avant de poster -> FAQ PostgreSQL, Cours PostgreSQL. Pour les questions concernant le moteur PostgreSQL plutôt que les fonctions PHP, merci d'utiliser le forum PostgreSQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/05/2012, 19h05   #1
spiale
Membre du Club
 
Inscription : février 2003
Messages : 66
Détails du profil
Informations personnelles :
Âge : 46
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : février 2003
Messages : 66
Points : 46
Points : 46
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
spiale est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2012, 08h52   #2
Gecko
Membre émérite
 
Avatar de Gecko
 
Homme Antoine Pous
Développeur Web
Inscription : février 2011
Messages : 128
Détails du profil
Informations personnelles :
Nom : Homme Antoine Pous
Âge : 28
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 : 128
Points : 831
Points : 831
Envoyer un message via MSN à Gecko Envoyer un message via Skype™ à Gecko
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');
__________________
Code php :
if ($toBe || $notToBe) echo 'That is the question';
Gecko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2012, 16h29   #3
spiale
Membre du Club
 
Inscription : février 2003
Messages : 66
Détails du profil
Informations personnelles :
Âge : 46
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : février 2003
Messages : 66
Points : 46
Points : 46
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
spiale est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h19.


 
 
 
 
Partenaires

Hébergement Web