jenkins — не удается остановить устаревшее предупреждение в переполнении стека

Кажется, я столкнулся с проблемой, описанной в этом блоге под названием 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

1

Решение

Вы также можете установить error_reporting на E_ALL & ~ E_DEPRECATED, который не должен отображать уведомления об устаревании.
Это может быть применено в php.ini или в конфигурации сборки в Jenkins.

0

Другие решения

Ну, я многому научился, копаясь в этом, но, как оказалось, моя ошибка была довольно простой. Я скопировал URL-адрес XML-RPC из некоторой документации в конфигурацию плагина Jenkins Testlink и забыл отредактировать его, чтобы он стал URL-адресом для моего сервера.

0

По вопросам рекламы [email protected]