Вход в Heroku postgres - не удалось подключиться к ошибке сервера

Предыстория.. Я пытаюсь подключиться к моей базе данных heroku извне из php-скрипта и получаю сообщение об ошибке "Не удалось подключиться к серверу"

Технология... Это база данных производственного уровня "кран", а не общая база данных. Я пытаюсь подключиться из php-скрипта, работающего на платформе общего хостинга,

История до сих пор.. Я могу подключиться с моей локальной машины и строк подключения php, которые выводит postgres.heroku.com. Я также могу подключиться с помощью строки psql, поэтому с информацией о подключении все в порядке.

.. но когда я перемещаю этот php-скрипт на php-сервер, который у меня запущен и работает на другом хосте, я получаю сообщение об ошибке «не удалось подключиться». Эти хосты уверяют меня, что нет никаких ограничений на выполнение внешних подключений с их сторона.

Код...

$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());

Ошибка..

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:

Параметры

Я не могу найти в героку никакой документации о добавлении IP-адреса в белый список, что было бы первым предположением? Любые другие указатели?

EDIT Я только что нашел этот поток, который похож на ..
Подключение Heroku Postgres из локального PHP-приложения .. но, насколько я вижу, у меня включены правильные настройки ssl. Вот соответствующий раздел из phpinfo() на openssl и pgsql соответственно.

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

person myagi    schedule 10.04.2013    source источник
comment
Вы можете подтвердить, что ваш php был скомпилирован --with-openssl? вы можете проверить через страницу с phpinfo(); Ищите OpenSSL support   -  person catsby    schedule 10.04.2013
comment
Да нормально включил. OpenSSL/0.9.8b   -  person myagi    schedule 11.04.2013
comment
Нет белого списка IP. Можете ли вы связаться с $ heroku pg:psql -a app_name (используя Heroku Toolbelt)?   -  person catsby    schedule 11.04.2013
comment
Да, эта команда работает локально.   -  person myagi    schedule 11.04.2013
comment
Поскольку это работает локально с psql, я удаляю тег Heroku, и мы фактически исключаем Heroku из списка проблем.   -  person catsby    schedule 12.04.2013


Ответы (1)


это работает локально, но не на отдельном сервере. Ошибка говорит, что он не может установить соединение, предполагая, что он никогда не завершает рукопожатие syn/ack. Поскольку это работает с вашего компьютера, мы можем исключить как Heroku, так и PostgreSQL. Конкретная ошибка и сценарий предполагают, что это не PHP.

Значит, должно быть что-то другое. Первое, на что я бы обратил внимание, это любые брандмауэры, которые находятся между вашим сервером и Интернетом. В противном случае проверьте любые настройки, которые могут быть у вас в экземпляре AWS EC, особенно в отношении iptables.

person Chris Travers    schedule 15.05.2013