Apache2/PHP5를 실행하는 OS X 10.6 Server에서 작동하고 'fopen()'에서 파일을 검색하려고 할 때 PHP가 호스트 이름을 확인하지 못하는 문제가 있습니다. 원격 서버. 명령 행에서 대화식 모드로 실행하면 'fopen()'이 완벽하게 작동합니다. IP 주소를 부여 할 때 '는 fopen()'웹에서 작동합니다PHP5 - 대화 형 모드가 아닌 경우 호스트 이름을 확인하지 못함
failed to open stream: php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
나는이 문제의 원인을 찾는 손실에있어 : 웹을 통해 실행할 때, 항상 오류와 함께 실패합니다 호스트 이름 대신; 'gethostbyname()'은 웹에서 실행될 때도 실패합니다 (오류가 아니며 해결할 호스트 이름을 반환합니다). 대화 형 모드에서 실행하면 잘 작동합니다. 유일한 예외는 'dns_get_record()'인 것처럼 보입니다. 웹에서 또는 대화식 모드로 실행될 때 제대로 작동합니다.
나는 서버에서 DNS 문제를 찾으려고했지만 dig, nslookup 및 모든 작업을 ping하고 "scutil -r"은 원격 서버에 현재 DNS 설정으로 연결할 수 있다고 말합니다. 문제가있는 위치에 대한 아이디어가 있습니까?
allow_url_fopen()이 문제라고 생각하지 않습니다. 여기서는 PHP.ini를 비교하는 것이 좋습니다. –
죄송 합니다만, 저는 allow_url_fopen()을 사용하기 위해 Apache에서 PHP.ini를 사용하고 있는지 확인해야한다고 명시해야합니다. 나는 'libnss_dns.so'을 조사하고 있지만 OS X 10.6 또는 Apache2의 MacPorts 배포판에서 찾을 수 없었습니다. 처음 게시 할 때 중요하다고 생각하지는 않았지만이 문제는 몇 달 전에 처음 발생했으며 원격 서버를 '/ etc/hosts'에 추가하여이 문제를 해결할 수있었습니다. 현재 문제가 무엇이든간에 '호스트'파일을 수동으로 편집하는 것은 도움이되지 않습니다. – Kaja
MacPorts 1.9.1에서도이 오류가 발생했습니다. ldns (sudo port install ldns)를 설치하면 문제가 해결되었습니다. – richardkmiller