2012-04-26 6 views
3

여러 서버에서 여러 사이트를 운영합니다. 일부 서버에서는 Apache 서버에 GeoIP 모듈이 설치되어 IP 주소를 통해 위치를 찾을 수 있습니다. 예를 들어, 자신의 국가 이름을 얻기 위해,이 작업을 수행 할 수 있습니다PHP에 Apache 모듈이 있는지 확인할 수 있습니까?

$countryName = apache_note("GEOIP_COUNTRY_NAME"); 

그러나, GeoIP가 모듈을 사용하지 않는 일부 서버에서이 문제를 일으킬 것으로 보인다.

만약 apache_note("GEOIP_COUNTRY_NAME")이 존재하면 isset()과 함께 $countryName comes 빈 백 테스트가 있는지 확인하는 것은 좋지 않습니다. 오류 메시지없이 HTML 렌더링 오류가 발생하는 것 같습니다.

따라서 GeoIP 모듈이 Apache에 있는지 테스트하기 위해 PHP에서 if 문을 테스트 할 수있는 방법이 있습니까?

합니다 (GeoIP가 모듈 그래서 모듈을 설치, 나는 아파치 설정에 액세스 할 수 없습니다 설치되지 않은 서버가 주를 선택할 수 없습니다.)

답변

4

당신은 apache_get_modules을 사용할 수 있어야합니다 http://php.net/manual/en/function.apache-get-modules.php을 사용하여 모듈이로드되었는지 확인하십시오. 모듈이 반환 된 배열에 있는지 확인하십시오. 이것은 분명히 CGI로 PHP를 호출하는 경우에는 작동하지 않습니다.

$mods = apache_get_modules(); 

if (array_search('mod_geoip',$mods)){ 
    print "GEO IP exist"; 
}else{ 
    print "GEO IP Doesn't Exist"; 
} 
관련 문제