Я пытаюсь использовать php для получения списка загруженных модулей apache с помощью apache_get_modules()
, но я получаю сообщение об ошибке, что эта функция не определена.
Из поиска кажется, что проблема в том, что
это работает только тогда, когда PHP установлен как модуль Apache. Это не будет работать при использовании PHP как CGI (например: suPHP)
Я не уверен, что это так, но я нахожусь на общем хостинге. Любые идеи, как узнать список загруженных модулей apache, желательно с php, но я открыт для предложений.
apache2 -t -D DUMP_MODULES
чтобы получить список модулей. apache_get_modules () доступен только в том случае, если PHP установлен как модуль, а не как CGI. Именно по этой причине вы не можете использовать эту функцию и страдать от ошибки. Другая причина была вызвана директивой disable_functions в вашем php.ini. вы можете использовать следующий письменный PHP-код, чтобы проверить, включен ли модуль перезаписи в вашем случае при использовании API-сервера CGI
<?php if (is_mod_rewrite_enabled()) { print "The apache module mod_rewrite is enabled.<br/>\n"; } else { print "The apache module mod_rewrite is NOT enabled.<br/>\n"; } /** * Verifies if the mod_rewrite module is enabled * * @return boolean True if the module is enabled. */ function is_mod_rewrite_enabled() { if ($_SERVER['HTTP_MOD_REWRITE'] == 'On') { return TRUE; } else { return FALSE; } } ?>
Чтобы проверить, используете ли вы Php Under CGI или Apache, вы можете использовать процедуру ниже
Создайте файл check_phpinfo.php и напишите PHP-код, написанный ниже –
<?php // Show all information, defaults to INFO_ALL phpinfo(); ?>
Затем файл и перейдите к URL-адресу – http://www.example.com/check_phpinfo.php, и он покажет вам php-файл на сервере
В четырех строках вы можете увидеть « API-интерфейс сервера CGI / FastCGI », который означает, что вы используете PHP в CGI / Fast CGI
<?php // Print Apache Modules print_r(apache_get_modules()); ?>