2017-01-17 11 views
4

У меня проблема, которая сводит меня с ума в последние пару часов: я не могу переопределить значение по умолчанию директивы error_reporting на моей машине разработки (Debian 8 + php-fpm 5.6.29 + Nginx/1.6.2)PHP-FPM не может переопределить error_reporting?

РНР пакеты Я использую:

$ dpkg --get-selections | grep php 
libapache2-mod-php5    install 
php-console-table    install 
php5      install 
php5-cli     install 
php5-common     install 
php5-curl     install 
php5-fpm     install 
php5-gd      install 
php5-intl     install 
php5-json     install 
php5-mcrypt     install 
php5-mysql     install 
php5-readline     install 
php5-xmlrpc     install 
php5-xsl     install 

Учитывая следующий мертвых простой скрипт:

<?php 
$initial_value = error_reporting(); // Just read the current value 

error_reporting(E_PARSE); // Lets set it to something else. 

$update_value = error_reporting(); // Read again. 

printf(
    "Initial value: %s\nFinal value: %s", 
    $initial_value, 
    $update_value 
); 

если я запускаю его из кли, он работает:

$ php test.php 
// output: Initial value: 22527 Final value: 4 

Но если я запускаю это под php5-FPM, выход:

Initial value: 32767 Final value: 32767 

Что я пробовал:

  • Установите значение внутри php.ini (и проверил все php.ini-х файлы, перечисленные в phpinfo();, на всякий случай), но ничего.
  • Im не используя .user.ini fiels (проверяются дважды)
  • Пробовал как с error_reporting(E_PARSE) и ini_set('error_reporting', E_PARSE);. Эти директивы должны переопределять INI-файлы, не так ли?

Конечно, после каждого редактирования в INI файлы, которые я сделал рестарт php5-FPM процесс (попробовал также остановить и запустить вместо перезагрузки/перезагрузки)

Странным является то, что я могу фактически переопределить другие параметры (display_errors, например, работает как из ini-файлов, так и из ini_set звонков).

Итак, что я пропущу до сих пор?

+0

Я запустил это на своем php7-fpm, и он работает. Может быть, ошибка php5-fpm? – apokryfos

+1

@apokryfos dunno, я использовал php5 + fpm в течение многих лет, это первый случай, который случается со мной! p.s: Пожалуйста, не говорите что-то вроде 'upgrade to php7'. Если бы я мог, я бы! – Strae

+0

Если вы недавно обновили версию PHP, скажем, от 5.6.X-1 до 5.6.X, я бы сказал, что может стоить переоценить снова, чтобы проверить, исправляет ли это это. Если нет, возможно, что-то более тонкое происходит. – apokryfos

ответ

0

Это пахнет php_admin_value. Проверьте ваш fpm/php.ini или fpm/pool.d/* или fpm/conf.d/* для:

php_admin_value[error_reporting] = E_ALL 

Это не-перезаписываемый и производит тот же результат, как вы описали. Также можно установить из конфигураций nginx, проверьте для:

fastcgi_param PHP_ADMIN_VALUE ...