Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

php et Erreur HTTP 500 (Internal Server Error)

32 views
Skip to first unread message

Une Bévue

unread,
Sep 13, 2012, 9:37:10 AM9/13/12
to
dans un script php j'ai cette erreur :
Erreur HTTP 500 (Internal Server Error)
dès que je décommente la ligne :
$db = new PDO("pgsql:dbname=$dbname;host=$host", $username, $password );

Pourtant cette ligne a été utilisée est et correcte (les variables
$dbname, ..., $password sont correctement attribuées) AVANT que je
reconstruite tout mon système Xubuntu.

mon script info.php me donne bien :
Additional .ini files parsed /etc/php5/apache2/conf.d/curl.ini,
/etc/php5/apache2/conf.d/pdo.ini,
/etc/php5/apache2/conf.d/pdo_pgsql.ini,
/etc/php5/apache2/conf.d/pgsql.ini, /etc/php5/apache2/conf.d/xsl.ini

PDO

PDO support enabled
PDO drivers pgsql

pdo_pgsql

PDO Driver for PostgreSQL enabled
PostgreSQL(libpq) Version 9.1.5
Module version 1.0.2
Revision $Id: pdo_pgsql.c 321634 2012-01-01 13:15:04Z felipe $

pgsql

PostgreSQL Support enabled
PostgreSQL(libpq) Version 9.1.5
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


d'autre part si je liste les erreurs reportées par mon php.ini j'obtiens :
error_reporting = E_ERROR & E_WARNING & E_PARSE & E_NOTICE &
E_CORE_ERROR & E_CORE_WARNING & E_COMPILE_ERROR & E_COMPILE_WARNING &
E_USER_ERROR & E_USER_WARNING & E_USER_NOTICE & E_RECOVERABLE_ERROR &
E_USER_DEPRECATED ;

en utilisant la function "FriendlyErrorType($type)" comme indiqué à la
page :
<http://www.php.net/manual/fr/errorfunc.constants.php>

si bien que je comprends pas l'erreur 500 et j'ai bien du mal à débugger.

bon, par ailleurs, j'ai testé en CLI la base considérée, une base de test :
yt@D620 /home/yt $ psql yt_tests
psql (9.1.5)
Type "help" for help.

yt_tests=> select * from weather;
city | temp_lo | temp_hi | prcp | date
---------------+---------+---------+------+------------
San Francisco | 46 | 50 | 0.25 | 1994-11-27
Hayward | 37 | 54 | | 1994-11-29
San Francisco | 43 | 57 | 0 | 1994-11-29
(3 rows)

yt_tests=> \q
yt@D620 /home/yt $


donc, comment faire pour avancer ???

Olivier Miakinen

unread,
Sep 13, 2012, 9:59:22 AM9/13/12
to
Bonjour,

Le 13/09/2012 15:37, Une Bᅵvue a ᅵcrit :
> dans un script php j'ai cette erreur :
> Erreur HTTP 500 (Internal Server Error)
> dᅵs que je dᅵcommente la ligne :
> $db = new PDO("pgsql:dbname=$dbname;host=$host", $username, $password );

Que donne ce script en ligne de commande (si c'est possible) ?

Une Bévue

unread,
Sep 13, 2012, 10:28:29 AM9/13/12
to
Le 13/09/2012 15:59, Olivier Miakinen a ᅵcrit :
yt@D620 /home/yt/Sites/yt_tests $ php index.php
PHP Fatal error: Uncaught exception 'PDOException' with message
'SQLSTATE[08006] [7] ' in /home/yt/Sites/yt_tests/index.php:74
Stack trace:
#0 /home/yt/Sites/yt_tests/index.php(74):
PDO->__construct('pgsql:dbname=yt...', 'yt', 'yvon5533')
#1 {main}
thrown in /home/yt/Sites/yt_tests/index.php on line 74
zsh: exit 255 php index.php
yt@D620 /home/yt/Sites/yt_tests $


entre temps j'ai ajoutᅵ le port ainsi :
$port="5432";
$db = new PDO("pgsql:dbname=$dbname;host=$host;port=$port",
$username, $password );


en revenant ᅵ ce que j'avais ᅵcrit prᅵcᅵdemment (ie. sans le port) j'ai
exactement la mᅵme chose.

bon, la ligne 74 citᅵe dans le message d'erreur est la ligne :
$db = new PDO("pgsql:dbname=$dbname;host=$host;", $username, $password );

j'ai vᅵrifiᅵ qu'en CLI par :
$ psql -h <server IP> -U yt -d yt_tests

avec <server IP> = localhost, 127.0.0.1, 192.168.0.35 (lan local), son
IPV6 ᅵa roule.

par contre je me suis rendu compte que pour me connecter ᅵ un server
distant en IPV6 il fallait ajouter -p 5432 pour que ᅵa roule, sinon psql
cherche ᅵ se connecter au server distant par le port 5433 (?).

je dois dire que la syntaxe :
$db = new PDO("pgsql:dbname=$dbname;host=$host;", $username, $password );
indiquᅵe ᅵ la page
<http://www.php.net/manual/fr/ref.pdo-pgsql.connection.php> est donnᅵe
par un utilisateur qui affirme que :
The DSN syntax shown here did not work for me, but this did:

<?php
$dbh = new PDO("pgsql:dbname=$dbname;host=$host", $username, $password );
?>

As opposed to

<?php
$dbh = new PDO('pgsql:dbname=$dbname;
host=$host;
username=$username;
password=$password');
?>

donc j'essaie, avant de poster, la "syntaxe DSN" :
db = new
PDO("pgsql:dbname=$dbname;host=$host;username=$username;password=$password;");

lᅵ le message d'erreur est diffᅵrent, en CLI :
yt@D620 /home/yt/Sites/yt_tests $ php index.php
PHP Fatal error: Uncaught exception 'PDOException' with message
'SQLSTATE[08006] [7] invalid connection option "username"' in
/home/yt/Sites/yt_tests/index.php:76
Stack trace:
#0 /home/yt/Sites/yt_tests/index.php(76):
PDO->__construct('pgsql:dbname=yt...')
#1 {main}
thrown in /home/yt/Sites/yt_tests/index.php on line 76
zsh: exit 255 php index.php
yt@D620 /home/yt/Sites/yt_tests $

Une Bévue

unread,
Sep 14, 2012, 9:01:05 AM9/14/12
to
Le 13/09/2012 15:59, Olivier Miakinen a écrit :
> Que donne ce script en ligne de commande (si c'est possible) ?
Bon, j'ai fait un autre test :
je change la variable :
$host="localhost";

pour l'adresse IPV6 d'un autre ordi, où la même base et approx la mêm
config existent :
$host="<IPV6 de l'ordi distant>";


et là ça roule "as expected"...

Le problème se trouve vraisemblablement entre PDO et psql...
0 new messages