Add check for HTTP_RAW_POST_DATA setting for >= 5.6

PHP 5.6 otherwise throws notices for perfectly valid code which results in broken endpoints.

Fixes https://github.com/owncloud/core/issues/13592
This commit is contained in:
Lukas Reschke 2015-01-22 13:46:40 +01:00
parent b5b491d1bb
commit bb80cf4eca
2 changed files with 16 additions and 0 deletions

View file

@ -12,6 +12,7 @@ php_value upload_max_filesize 513M
php_value post_max_size 513M
php_value memory_limit 512M
php_value mbstring.func_overload 0
php_value always_populate_raw_post_data -1
<IfModule env_module>
SetEnv htaccessWorking true
</IfModule>

View file

@ -628,6 +628,21 @@ class OC_Util {
);
$webServerRestart = true;
}
/**
* PHP 5.6 ships with a PHP setting which throws notices by default for a
* lot of endpoints. Thus we need to ensure that the value is set to -1
*
* @link https://github.com/owncloud/core/issues/13592
*/
if(version_compare(phpversion(), '5.6.0', '>=') &&
\OC::$server->getIniWrapper()->getNumeric('always_populate_raw_post_data') !== -1) {
$errors[] = array(
'error' => 'PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code.',
'hint' => 'To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini'
);
}
if (!self::isAnnotationsWorking()) {
$errors[] = array(
'error' => 'PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.',