wp-cli工具是从命令行执行WordPress任务的一种非常方便的方法。但是,如果WordPress站点包含调用PHP getallheaders
方法的插件或主题初始化代码,则wp-cli将不起作用。它将返回以下错误以响应每个命令:
致命错误:调用未定义的函数getallheaders()
这发生在PHP v 5.4.4上。这个问题的最佳解决方法是什么?
答案 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();}
}
}