我想使用PHP來獲取使用apache_get_modules()
加載的Apache模塊的列表,但我得到一個錯誤,該函數是未定義的。替代apache_get_modules()獲取加載的Apache模塊列表
從搜索似乎問題是
當PHP安裝 作爲Apache模塊這僅適用。這不會使用PHP作爲CGI時 功能(例如: suPHP)
我不知道,如果是這樣的話,但我在共享主機。任何想法如何找出加載的Apache模塊的列表,最好用PHP,但我願意提供建議。
我想使用PHP來獲取使用apache_get_modules()
加載的Apache模塊的列表,但我得到一個錯誤,該函數是未定義的。替代apache_get_modules()獲取加載的Apache模塊列表
從搜索似乎問題是
當PHP安裝 作爲Apache模塊這僅適用。這不會使用PHP作爲CGI時 功能(例如: suPHP)
我不知道,如果是這樣的話,但我在共享主機。任何想法如何找出加載的Apache模塊的列表,最好用PHP,但我願意提供建議。
apache2 -t -D DUMP_MODULES
的東西來獲取模塊列表。當PHP被安裝作爲一個模塊,而不是一個CGI<?php
// Print Apache Modules
print_r(apache_get_modules());
?>
歡迎來到StackOverflow!請嘗試爲您的答案提供一些背景信息。這允許用戶從您的答案中學習,以及如何將其應用到其他地方,而不僅僅是在這一個場景中。您可以在此處找到有關如何編寫答案的更多建議:http://stackoverflow.com/help/how-to-answer – Newd 2015-05-19 13:21:28
OP已聲明此功能不可用。 – 2015-05-19 15:54:18
apache_get_modules()纔可用。這就是爲什麼你不能使用這個功能和遭受錯誤的原因。另一個原因是由你的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;
}
}
?>
要查看是否正在運行PHP在CGI或Apache您可以使用下面
程序重寫模塊在你的情況下啓用與否創建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下/快速CGI
@delving我試着在我的答案中添加信息,可以幫助你和其他人 – 2016-03-04 07:00:20
經過的phpinfo PHP,它原來安裝爲CGI。你介意給出一些關於如何獲得最後2點工作的細節。我在共享主機,所以沒有root權限。 – devling 2010-07-05 10:16:18
@devling你對這個錯誤有任何意見嗎我也有同樣的錯誤 – 2016-03-04 06:38:55
@devling我得到了這個錯誤解決,並添加了信息,幫助我解決這個問題,你檢查我的答案 – 2016-03-04 06:58:57