我试图使用PHP来获取使用apache_get_modules()
加载的Apache模块的列表,但我得到一个错误,这个函数是未定义的。
从search看来,问题是这样的
这只适用于PHP作为Apache模块安装。 使用PHP作为CGI时,这不起作用(例如:suPHP)
我不确定是否是这种情况,但我在共享主机。 任何想法如何找出加载的Apache模块的列表,最好用PHP,但我打开的build议。
apache2 -t -D DUMP_MODULES
的模块列表。 apache_get_modules()仅在PHP作为模块安装而不是CGI时可用。 这就是为什么你不能使用这个功能,并从错误中受苦的原因。 另一个原因是由你的php.ini中的disable_functions指令造成的。 在使用CGI服务器API时,可以使用下面的书面php代码来检查重写模块是否启用
<?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在CGI或Apache下,您可以使用下面的过程
创建一个check_phpinfo.php文件,写下面写的PHP代码 –
<?php // Show all information, defaults to INFO_ALL phpinfo(); ?>
然后该文件和导航到Url就像 – http://www.example.com/check_phpinfo.php它会显示你的PHP文件在服务器
在四行中,您可以看到“ server API CGI / FastCGI ”,表示您在CGI / Fast CGI下使用PHP
<?php // Print Apache modulees print_r(apache_get_modules()); ?>