如何修复PHP已弃用自动填充$ HTTP_RAW_POST_DATA是不推荐使用的问题?

时间:2017-08-14 10:11:44

标签: php wordpress

你好,我的错误日志中出现了这个错误:

PHP已弃用:自动填充$ HTTP_RAW_POST_DATA已弃用,将在以后的版本中删除。要避免此警告,请在php.ini中将'always_populate_raw_post_data'设置为'-1'并使用php: //改为输入流。在第0行的未知中

我的wordpress版本是4.8.1,php版本是5.6.30。

我尝试通过创建php ini文件并将always_populate_raw_post_data值设置为-1来解决此问题。但我仍然得到错误。

如果无法修复,我怎样才能阻止它在错误日志上打印?

我正在使用共享主机。

4 个答案:

答案 0 :(得分:2)

如果您的帐户(在共享主机上)使用(或已配置)PHP-FPM,则无法通过php.ini执行此操作(如果您在root中创建php.ini,则无效)

您可以尝试:添加此代码

<IfModule mod_php5.c>
    php_value always_populate_raw_post_data -1
</IfModule>

在你的根目录下的.htaccess文件中,如果没有帮助,那么请求服务器管理员(支持)在给定主机的全局核心php.ini中更改它。

答案 1 :(得分:2)

您创建的php.ini文件需要位于PHP期望找到其配置文件的位置。您可以使用phpinfo()函数查看PHP已加载的配置:

使用以下内容将名为info.php的文件上传到您的Web服务器根目录:

<?php
// delete this file or comment out the below function when not in use
phpinfo();
?>

然后使用浏览器导航至http://yourwebsite.com/info.php。应加载一个页面,告诉您有关PHP配置的所有信息。查找顶部附近的部分,其中显示有关已加载配置文件的信息。特别是,查找以下条目: "Loaded Configuration File" and "Scan this dir for additional .ini files"

如果您有权访问列为已加载配置文件的.ini文件,则只需修改 always_populate_raw_post_data 的值。否则,将您已创建的.ini文件上载到扫描的目录以获取其他配置文件。当然,您需要重新加载或重新启动php才能重新分析配置文件。

如果您无法访问上述步骤中列出的任何位置,则您的托管服务提供商可能会通过cPanel或类似方式授予您访问php.ini文件的权限。否则,您最好的选择是直接与他们联系。

最后,如果您不关心实际配置值而只是关注警告消息,则可以使用ini_set()函数将错误报告设置为其他值,从而消除任何弃用警告。您要设置的变量是“error_reporting”,可以找到可能值的列表here

此外,由于您运行的是WordPress,因此您可以在wp-config.php文件中设置一些debugerror reporting选项。

答案 2 :(得分:1)

你不能像那样创建一个PHP.ini。这是一个核心配置文件,是PHP安装的一部分。 http://php.net/manual/en/configuration.file.php阅读本文档以更好地了解ini的功能。

根据操作系统和安装人员的不同,ini文件可能位于多个位置。如果您无权访问它,请与您的托管服务提供商联系

答案 3 :(得分:1)

  

如何防止它在错误日志上打印?

你的问题不在于你无法访问php.ini并且不是错误显示的。

事实上,您的问题是您使用弃用变量

相反,您可以尝试使用

file_get_contents('php://input');

php.ini位于服务器上的php文件中的某个位置,我假设您无权访问共享主机。