2016-09-28 5 views
0

메신저가 다른 서버에 포스트 그레스에 액세스 할 수 pg_connect를 사용하려고 PHP에서 pg_connect()를 사용하여 ,,오류 500 (치명적 오류)

난 원격 액세스를 열 않았고 난 내 포스트 그레스 서버에 연결하는 데 bash을 사용할 수 있습니다! 그리고 나는 모든 client_ip/32 트러스트를 호스트 했었지만, pg_connect을 사용할 때 에러 500이 발생했습니다! pgsql도 설치되어 있으며 function_exists('pg_connect')으로 확인한 결과 true를 반환합니다! 내 코드는 다음과 같습니다

$dbconn = pg_connect("host=remote_IP port=5432 dbname=myDB user=postgres") or die("Could not connect"); 

나는이 시도하고 다시 치명적인 오류 500

$dbconn = pg_connect("host=remote_IP port=5432 dbname=myDB 
user=another_super_user_i_made password=user_password") or die("Could not connect"); 

문제가 무엇을 얻을거야?

+0

오류 로그에 어떤 문제가 있습니까? – Blake

+0

서버에서 내부 오류 또는 잘못된 구성이 발생하여 요청을 완료 할 수 없습니다. 이 오류가 발생한 시간과이 오류가 발생하기 직전에 수행 한 작업을 알려면 [email protected]의 서버 관리자에게 문의하십시오. @Blake이 오류에 대한 추가 정보는 서버 오류 로그에서 사용 가능할 수 있습니다. 또한 요청을 처리하기 위해 ErrorDocument를 사용하려고 시도하는 동안 500 내부 서버 오류 오류가 발생했습니다. – shaibow

+0

그것이 그 페이지에서 말하는 것입니다,하지만 PHP 에러 로그는 무엇을 말합니까? – Chris

답변

0

호스트 차단 문제가있었습니다. 클라이언트 호스팅에서 DB에 원격 액세스 할 수 없었습니다! 호스트와 문제를 추적 할 수 있는지 확인하십시오.

0

네트워크의 한 컴퓨터에서 서버에 연결할 수 있지만 다른 컴퓨터에서 연결 시간 초과 문제가 발생하는 경우 대개 몇 가지 중 하나가 원인 일 수 있습니다.

1) DNS. 테스트하는 컴퓨터 ("원격 액세스"라고 부름)는 DNS 이름을 확인할 수 있으며 PHP 코드를 실행하는 웹 서버는 확인할 수 없습니다. DNS 이름 대신 실제 IP 주소를 사용하여이를 테스트 할 수 있습니다.

2) 연결. 서로 다른 기계가 네트워크에서 서로 다른 방식으로 연결됩니다. "원격 액세스"컴퓨터에서 IP로 연결할 수 있지만 웹 서버가 연결에 시간이 초과되면 연결에 문제가있는 경우 SSH와 같은 "원격 액세스"를 사용하여 해당 웹 서버에 직접 연결해보십시오.) 거기에서 수동으로 연결할 수 있는지 확인하십시오.

네트워크 관련 문제가 아닌 경우 기본 PG 시간 초과 문제 일 수 있습니다. 연결 문자열을 사용하여 수동으로 설정해보십시오. 특히 다음과 같은 "connect_timeout"옵션이 있습니다.

$d=pg_connect('host=example.com user=pgsql dbname=postgres connect_timeout=5'); 
+0

답변 해 주셔서 감사합니다! 하지만 그래! 나는 클라이언트에서 ssh를 사용하여 시도했고'psql -U myuser -h myIP'를 사용하여 서버에 연결할 수 있습니다! 하지만 PHP를 사용하여 메신저 때 오류가 발생합니다! – shaibow

+0

포트가 postgres 용으로 열려 있는지 확인하기 위해 서비스/iptables/방화벽 규칙이 실행 중임을 알고 있습니다. – Blake

+0

사용중인 IP가 "127.0.0.1"입니까? –