php - WordPress wp-cli 生成错误 : "Call to undefined function getallheaders"

标签 php wordpress undefined-function

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

Fatal error: Call to undefined function getallheaders()

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

最佳答案

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

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

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

关于php - WordPress wp-cli 生成错误 : "Call to undefined function getallheaders",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30769256/

相关文章:

compiler-errors - 警告 : Ecto. Repo.insert_all/3 未定义或私有(private)

javascript - 主干 View : function is undefined

mysql - 未知字符集 : 'utf8mb4'

php - 本地 WordPress 开发问题 index.php 和管理工作 - 没有其他页面响应

javascript - 未捕获的类型错误 : undefined is not a function for window. 位置.路径名

php - 用于显示之前日期的简单脚本

php - 在 Alamofire 中快速发送参数

php - 查询按外来id输出一组值

php - Mysql查询没有返回结果

wordpress - 如何阻止 Wordpress 插入 noindex 元标记?