apache_get_modules() is only available when the PHP is installed as a module and not as a CGI == It doesn't work with php-fpm.
(PHP 4 >= 4.3.2, PHP 5, PHP 7)
apache_get_modules — 적재된 아파치 모듈 목록을 얻습니다
적재된 아파치 모듈 목록을 얻습니다.
적재된 아파치 모듈의 array.
버전 | 설명 |
---|---|
5.0.0 | 아파치 1이나, PHP 아파치 2 filter API를 사용할 때도 사용할 수 있게 되었습니다. 이전에는, 아파치 2 handler API를 사용할 때만 사용할 수 있었습니다. |
Example #1 apache_get_modules() 예제
<?php
print_r(apache_get_modules());
?>
위 예제의 출력 예시:
Array ( [0] => core [1] => http_core [2] => mod_so [3] => sapi_apache2 [4] => mod_mime [5] => mod_rewrite )
apache_get_modules() is only available when the PHP is installed as a module and not as a CGI == It doesn't work with php-fpm.
<?php
function apache_module_exists($module)
{
return in_array($module, apache_get_modules());
}
?>
this function can be used on older php versions using something like "/etc/httpd/httpd.conf" as $fname
<?php
function get_modules ($fname){
if (is_readable($fname)){
$fcont = file($fname);
if (is_array($fcont)){
foreach ($fcont as $line){
if (preg_match ("/^LoadModule\s*(\S*)\s*(\S*)/i",$line,$match)){
$return[$match[2]] = $match[1];
}
}
}
}
return $return;
}
?>
/**
* Check if a Apache module is loaded (even if php run as fcgi or cgi )
*
* @param string $module
* @return bool
*/
public static function apache_check_module(string $module): bool
{
$module = ($module ? strval(value: $module) : '');
if (function_exists('apache_get_modules') && !empty($module)) {
if (in_array(needle: $module, haystack: apache_get_modules())) {
return TRUE;
}
} else if (!empty(shell_exec(command: 'apache2ctl -M | grep \'' . $module . '\''))) {
return TRUE;
} else {
return FALSE;
}
}
function apache_module_exists($module_name)
{
$modules = apache_get_modules();
return ( in_array($module_name, $modules) ? true : false );
}
var_dump(apache_module_exists('mod_headers'));
<?php
function apache_module_exists($module_name)
{
$modules = apache_get_modules();
foreach ($modules as $module)
{
if ($module == $module_name)
return true;
}
return false;
}
var_dump(apache_module_exists('mod_headers'));