我在不同的服务器上运行了许多站点。在某些服务器上,Apache服务器安装了GeoIP模块,以便我可以通过其IP地址找到它们的位置。例如,要获取他们的国家/地区名称,我可以这样做:
$countryName = apache_note("GEOIP_COUNTRY_NAME");
但是,在某些不使用GeoIP模块的服务器上,这似乎会造成麻烦。
如果$countryName comes
与apache_note("GEOIP_COUNTRY_NAME")
一起存在,那么检查isset()
是否返回空测试似乎不够好。我似乎只是在没有任何错误消息的情况下获得HTML渲染失败。
那么,有没有办法在PHP中创建if
语句来测试Apache中是否存在GeoIP模块?
(请注意,在未安装GeoIP模块的服务器上,我无法访问Apache设置,因此无法安装模块。)
答案 0 :(得分:4)
您应该能够使用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";
}