Кажется, я столкнулся с проблемой, описанной в этом блоге под названием -will-be-removed-in-a-future-version/" rel="nofollow noreferrer">PHP 5.6: «Автоматическое заполнение $HTTP_RAW_POST_DATA устарело и будет удалено в будущей версии».. Как видно из этого вывода 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>.
Это сообщение возвращается подключаемому модулю Jenkins TestLink, когда он пытается связаться с TestLink через XML-RPC. Вы можете ясно видеть, что устаревшее предупреждение предшествует ответу XML, что, в свою очередь, вызывает проблему «изменить информацию заголовка».
Но чего я не понимаю, так это того, что я не могу подавить это предупреждение. Если я установлю always_populate_raw_post_data = -1
, похоже, это не повлияет. Я думал, что редактирую не тот файл php.ini, но последовал совету здесь и смог убедиться, что изменения, которые я делаю, принимаются сервером. Моя единственная теория заключается в том, что TestLink переопределяет эти значения в приложении, но я не могу найти ничего связанного с моей установкой.
РЕДАКТИРОВАТЬ: Некоторая информация об окружающей среде: Apache 2.2.15-39 на порту 80, с PHP 5.6.6-1 и TestLink 1.9.13 с использованием MySQL 5.1.73. Jenkins 1.601 на Tomcat 8.0.20, работающем на порту 8089.
Если я внимательно посмотрю на сообщение выше, я увижу PHP/5.6.2
, но если я найду в своей системе find / -type f -name php
, я получу только /usr/bin/php
...
ob_start();
в свой сценарий, чтобы попытаться избежать этого? - person Matt   schedule 09.03.2015