2015-06-10 55 views
2

wp-cli工具是從命令行執行WordPress任務的非常方便的方法。但是,如果WordPress網站包含調用PHP getallheaders方法的插件或主題初始化代碼,那麼wp-cli將不起作用。這反而響應返回以下錯誤的每一個命令:WordPress wp-cli生成錯誤:「調用未定義的函數getallheaders」

致命錯誤:調用未定義功能getallheaders()可以

這是在PHP 5.4.4 v發生。這個問題最好的解決方法是什麼?

回答

3

某些PHP函數依賴於底層的服務器應用程序編程接口。 Apache SAPI當然支持getallheaders方法。但是一些命令行界面沒有。在這種情況下,wp-cli使用PHP-FPM(FastCGI流程管理器)作爲SAPI。但是根據這個PHP Bug Report 62596,PHP v5.4中的PHP-FPM不支持getallheaders。因此,當wp-cli嘗試在CLI模式下引導WordPress站點時,會發生未定義的函數錯誤。

推薦的解決方案是將這些行添加到wp-config.php文件中。 wp-cli工具定義了一個名爲WP_CLI的常量。如果設置了這個常量,那麼只需定義getallheaders的虛擬版本即可。這不應該導致問題,因爲WP應用程序在CLI模式下運行時無法獲取任何HTTP標題。下面是能夠被插入到WP-config.php中

if (defined('WP_CLI')) { 
    if (!function_exists ('getallheaders')) { 
     function getallheaders() {return array();} 
    } 
} 
+0

單個事件也可以被處理內嵌其中getallheaders功能是通過用,'如果(function_exists(「getallheaders」))包裹稱爲'一些示例代碼 – here

相關問題