2013-04-10 4 views
0

Background .. Je suis en train de se connecter à ma base de données Heroku externe à partir d'un script php et je reçois une erreur « Impossible de se connecter au serveur »Heroku entrée postgres - Impossible de se connecter à une erreur de serveur

La technologie .. C'est une base de données de niveau de production "grue", pas une base de données partagée. Je suis en train de se connecter à partir d'un script php, en cours d'exécution sur une plate-forme d'hébergement mutualisé,

L'histoire jusqu'à présent .. je peux connecter de mes chaînes de connexion de la machine locale et que php postgres.heroku.com sorties . Je peux également me connecter avec la chaîne psql donc il n'y a rien de mal avec les informations de connexion

.. mais quand je déplace ce script PHP vers un serveur php que j'ai installé sur un autre hôte, alors je reçois un "ne pouvait pas Connectez-vous "erreur .. Ces hôtes m'assurent qu'il n'y a aucune restriction sur faire des connexions externes de leur côté.

Le code ..

$dbconn = pg_connect("host=ec2-54-235-162-154.compute-1.amazonaws.com port=5882 dbname=***** user=***** password=***** sslmode=require options='--client_encoding=UTF8'") or die('Could not connect: ' . pg_last_error()); 

L'erreur ..

Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Connection refused Is the server running on host "ec2-54-235-162-154.compute-1.amazonaws.com" and accepting TCP/IP connections on port 5882? in /usr/local/pem/vhosts/164125/webspace/httpdocs/scheduled/postgres_vr.php on line 3 Warning: pg_last_error(): No PostgreSQL link opened yet in /usr/local/pem/vhosts/164125/webspace/httpdocs/scheduled/postgres_vr.php on line 3 Could not connect: 

options

Je ne peux trouver aucune documentation heroku à propos d'une liste blanche IP adresse qui serait première supposition? D'autres pointeurs?

EDIT Je viens de trouver ce fil, qui est similaire ..
Heroku Postgres Connection from localhost PHP application .. mais j'ai les paramètres ssl corrects ont permis pour autant que je peux voir. est ici la section pertinente du phpinfo() sur OpenSSL et pgsql respectivement ..

OpenSSL support enabled 
OpenSSL Library Version OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 
OpenSSL Header Version OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 

PostgreSQL(libpq) Version 8.1.23 
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 
+0

pouvez-vous confirmer que votre php a été compilé '--with-openssl'? vous pouvez vérifier via une page avec 'phpinfo();' Rechercher 'Support OpenSSL' – catsby

+0

Oui, c'est activé. OpenSSL/0.9.8b – myagi

+1

Il n'y a pas de liste blanche IP. Pouvez-vous vous connecter avec '$ heroku pg: psql -a app_name' (en utilisant la Heroku Toolbelt)? – catsby

Répondre

0

cela fonctionne localement, mais pas sur un serveur distinct. L'erreur indique qu'il ne peut pas faire la connexion suggérant qu'il ne termine jamais la négociation syn/ack. Comme cela fonctionne depuis votre ordinateur, nous pouvons éliminer Heroku et PostgreSQL. L'erreur spécifique et le scénario suggèrent que ce n'est pas PHP.

Il doit donc y avoir quelque chose d'autre. La première chose que je regarderais sont les pare-feu qui se trouvent entre votre serveur et Internet. A défaut, vérifiez tous les paramètres que vous pouvez avoir sur l'instance AWS EC, particulièrement en ce qui concerne iptables.

Questions connexes