我可以检查一下 PHP 中是否存在 Apache 模块吗?



我在不同的服务器上运行许多站点。在某些服务器上,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";
}

相关内容

最新更新