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, PHP 8)
apache_get_modules — ロードされた Apache モジュールのリストを取得する
この関数にはパラメータはありません。
ロードされた Apache モジュールの配列 array を返します。
例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.
<?phpfunction 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<?phpfunction 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; }}