我似乎遇到了这篇名为PHP 5.6: “Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version.”的博客中描述的问题。从我服务器上的ngrep输出中可以看出:
HTTP/1.1 200 OK..Date: Mon, 09 Mar 2015 20:28:06 GMT..Server: Apache/2.2.23 (Unix) mod_ssl/2.2.23 OpenSSL/1.0.0j DAV/2 PHP/5.6.2..Content-Length: 819..
Keep-Alive: timeout=5, max=100..Connection: Keep-Alive..Content-Type: text/html; charset=UTF-8....<br />.<b>Deprecated</b>: Automatically populating
$HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini
and use the php://input stream instead. in <b>Unknown</b> on line <b>0</b><br />.<br />.<b>Warning</b>: Cannot modify header information - headers
already sent in <b>Unknown</b> on line <b>0</b><br />.<?xml version="1.0"?>.<methodResponse>. <params>. <param>. <value>.
<array><data>. <value><struct>. <member><name>code</name><value><int>2000</int></value></member>. <member><name>message</name><value><string>
(check DevKey) - Can not authenticate client: invalid developer key</string></value></member>.</struct></value>.</data></array>. </value>.
</param>. </params>.</methodResponse>.
此消息是在尝试通过XML-RPC与TestLink通信时返回到Jenkins TestLink插件的消息。您可以清楚地看到已弃用的警告在XML响应之前,这反过来导致&#34;修改标头信息&#34;问题。
但是,我不能得到的是,我似乎无法抑制这种警告。如果我设置always_populate_raw_post_data = -1
,它似乎没有效果。我想也许我正在编辑错误的php.ini文件,但我遵循了建议here并且能够验证我所做的更改是由服务器获取的。我唯一的理论是TestLink在应用程序中覆盖了这些值,但我似乎无法在我的安装中找到任何相关内容。
编辑: 一些环境信息:端口80上的Apache 2.2.15-39,PHP 5.6.6-1和使用MySQL 5.1.73的TestLink 1.9.13。 在端口8089上运行的Tomcat 8.0.20上的Jenkins 1.601。
如果我仔细查看上面的消息,我会看到PHP/5.6.2
,但如果我在我的系统find / -type f -name php
上查找,我只会/usr/bin/php
...
答案 0 :(得分:0)
您还可以将error_reporting设置为E_ALL&amp; ~E_DEPRECATED应该阻止显示有关弃用的通知。 这可以在php.ini中或在Jenkins的构建配置中应用。
答案 1 :(得分:0)
嗯,我深入学习了很多东西,但事实证明我的错误很简单。我已将某些文档中的XML-RPC URL复制到Jenkins Testlink插件的配置中,忘了将其编辑为我服务器的URL。