2013-04-10 3 views
0

배경에 나는 PHP 스크립트에서 외부에서 내 Heroku가 데이터베이스에 연결하기 위해 노력하고있어 나는 "서버에 연결할 수 없습니다"오류Heroku가 포스트 그레스 유입 - .. 서버 오류

납니다를 연결할 수 없습니다

기술주 .. 그것은 "크레인"생산 수준의 데이터베이스가 아닌 공유 데이터베이스입니다. 나는 내 로컬 컴퓨터와 PHP 연결 문자열 postgres.heroku.com 출력에서 ​​연결할 수 있습니다 .. 지금까지, 공유 호스팅 플랫폼에서 실행, PHP 스크립트에서 연결

이야기를하려고 해요 . 또한 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를 허용 목록에 대해 Heroku가에있는 모든 문서를 찾을 수 없습니다

옵션 첫 번째 추측이 될 주소? 다른 포인터들?

편집 난 그냥 유사하다이 스레드 ..
Heroku Postgres Connection from localhost PHP application 발견 ..하지만 올바른 SSL 설정은 최대한 멀리 볼 수 사용할 수 있습니다. 여기

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

PHP가'--with-openssl'을 컴파일했는지 확인할 수 있습니까? 당신은'phpinfo();'로 페이지를 통해 확인할 수 있습니다. 'OpenSSL support'를 찾으십시오. – catsby

+0

그래, 괜찮아. OpenSSL/0.9.8b – myagi

+1

IP 허용 목록이 없습니다. 당신은'$ heroku pg : psql -a app_name' (Heroku Toolbelt 사용)과 연결할 수 있습니까? – catsby

답변

0

이 아닌 별도의 서버에 로컬로 작동합니다 ..에는 OpenSSL 각각 pgSQL의에은 phpinfo()에서 관련 부분입니다. 오류는 연결을 만들지 않아서 syn/ack 핸드 셰이크가 완료되지 않는다고 제안합니다. 컴퓨터에서 작동하므로 Heroku와 PostgreSQL을 모두 제거 할 수 있습니다. 특정 오류 및 시나리오는 PHP가 아니라고 제안합니다.

그래서 다른 것이되어야합니다. 내가 제일 먼저 살펴볼 것은 서버와 인터넷 사이에있는 모든 방화벽입니다. 실패 할 경우 특히 iptables와 관련하여 AWS EC 인스턴스에서 발생할 수있는 설정을 확인하십시오.