我在不同的服务器上运行许多站点。在某些服务器上,Apache服务器安装了GeoIP模块,以便我可以通过其IP地址找到它们的位置。例如,要获取他们的国家/地区名称,我可以这样做:
$countryName = apache_note("GEOIP_COUNTRY_NAME");
但是,在某些不使用GeoIP模块的服务器上,这似乎会引起麻烦。
似乎检查$countryName comes
是否返回空测试(如果isset()
存在apache_note("GEOIP_COUNTRY_NAME")
则不够好。我似乎只是得到HTML渲染失败,没有任何错误消息。
那么,有没有办法在PHP中做一个if
语句来测试Apache中是否存在该GeoIP模块?
(请注意,在未安装 GeoIP 模块的服务器上,我无法访问 Apache 设置,因此无法安装该模块。
您应该能够使用 apache_get_modules http://php.net/manual/en/function.apache-get-modules.php 来查看模块是否已加载。 只需检查模块是否在返回的数组中。 不过,如果您将PHP称为CGI,这显然不起作用。
$mods = apache_get_modules();
if (array_search('mod_geoip',$mods)){
print "GEO IP exist";
}else{
print "GEO IP Doesn't Exist";
}