我可以查看PHP中是否存在Apache模块吗?

时间:2012-04-26 04:30:50

标签: php apache

我在不同的服务器上运行了许多站点。在某些服务器上,Apache服务器安装了GeoIP模块,以便我可以通过其IP地址找到它们的位置。例如,要获取他们的国家/地区名称,我可以这样做:

$countryName = apache_note("GEOIP_COUNTRY_NAME");

但是,在某些不使用GeoIP模块的服务器上,这似乎会造成麻烦。

如果$countryName comesapache_note("GEOIP_COUNTRY_NAME")一起存在,那么检查isset()是否返回空测试似乎不够好。我似乎只是在没有任何错误消息的情况下获得HTML渲染失败。

那么,有没有办法在PHP中创建if语句来测试Apache中是否存在GeoIP模块?

(请注意,在未安装GeoIP模块的服务器上,我无法访问Apache设置,因此无法安装模块。)

1 个答案:

答案 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";
}