WordPress wp-cli生成错误:“调用未定义的函数getallheaders”

时间:2015-06-10 23:50:34

标签: php wordpress undefined-function

wp-cli工具是从命令行执行WordPress任务的一种非常方便的方法。但是,如果WordPress站点包含调用PHP getallheaders方法的插件或主题初始化代码,则wp-cli将不起作用。它将返回以下错误以响应每个命令:

  

致命错误:调用未定义的函数getallheaders()

这发生在PHP v 5.4.4上。这个问题的最佳解决方法是什么?

1 个答案:

答案 0 :(得分:3)

某些PHP函数依赖于底层的服务器应用程序编程接口。 Apache SAPI当然支持getallheaders方法。但有些命令行界面却没有。在这种情况下,wp-cli使用PHP-FPM(FastCGI Process Manager)作为SAPI。但是根据这个PHP Bug Report 62596,PHP v5.4中的PHP-FPM不支持getallheaders。因此,当wp-cli尝试以CLI模式引导WordPress站点时,会发生未定义的函数错误。

建议的解决方案是将这些行添加到wp-config.php文件中。 wp-cli工具定义了一个名为:WP_CLI的常量。如果设置了此常量,则只需定义getallheaders的虚拟版本。这不应该导致问题,因为在CLI模式下运行时WP应用程序无法获取任何HTTP标头。以下是一些可插入wp-config.php

的示例代码
if ( defined( 'WP_CLI' ) ) {
    if ( !function_exists ( 'getallheaders' ) ) {
        function getallheaders() {return array();}
    }
}