我正在尝试使用php来获取使用apache_get_modules()
加载的apache模块的列表,但是我得到一个错误,即此函数未定义。
从搜索来看似乎问题是
这只适用于安装PHP的情况 作为Apache模块。这不会 使用PHP作为CGI时的函数(例如: suPHP)
我不确定是否是这种情况,但我正在共享托管。任何想法如何找出加载的apache模块列表,最好用PHP,但我愿意接受建议。
答案 0 :(得分:7)
apache2 -t -D DUMP_MODULES
的内容来获取模块列表。答案 1 :(得分:1)
apache_get_modules()仅在PHP作为模块而不是CGI安装时可用。这就是为什么你不能使用这个功能并遭受错误的原因。另一个原因是由php.ini中的disable_functions指令引起的。您可以使用以下编写的PHP代码来检查在使用CGI服务器API时是否启用了重写模块
<?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;
}
}
?>
要检查您是否在CGI或Apache下运行Php,您可以使用以下程序
创建一个check_phpinfo.php文件并编写下面写的PHP代码 -
<?php
// Show all information, defaults to INFO_ALL
phpinfo();
?>
然后该文件并导航到Url,如www.example.com/check_phpinfo.php,它会在服务器中显示php文件
在第四行中,您可以看到“服务器API CGI / FastCGI ”表示您在CGI / Fast CGI下使用PHP
答案 2 :(得分:-5)
<?php
// Print Apache Modules
print_r(apache_get_modules());
?>