Назад | Перейти на главную страницу

php.ini не читается после обновления до PHP 5.6.25 из RHSC на RHEL7 с SELinux. Как отлаживать?

Конфигурация: я запускаю веб-сервер с RHEL7 с модулем ядра SELinux и php-fpm. По умолчанию RHEL7 поставляется с PHP 5.4. Эта версия PHP слишком старая для моего программного обеспечения, поэтому я обновился до PHP 5.6.25 с RHSC.

До обновления все работало как положено.

Когда я запускаю обновленный php из интерфейса командной строки, все работает нормально. Например, я изменил значение для upload_max_filesize (в строке 810) от 2M (по умолчанию) до 8M, и это изменение появляется, как и ожидалось, когда я запрашиваю настройки PHP из CLI:

php -v
php 5.6.25 (cli) ...
php -i | fgrep upload_max_filesize
upload_max_filesize => 8M => 8M

Тем не мение, после апгрейд, похоже php.ini больше не читается Apache при перезапуске Apache. То есть: изменения в php.ini не действуют (все значения, включая значение для upload_max_filesize оставайтесь по умолчанию).

Я создал веб-страницу для отладки этого, она содержит следующий фрагмент кода PHP:

$inipath = php_ini_loaded_file();
echo '<p>Loaded php.ini: <code>' . $inipath . '</code>.</p>';
$contents = file($inipath);
if ($contents) {
  echo '<p>Line 810: ' . $contents[810] . '.</p>';
} else {
  echo '<p>Unable to read php.ini file.</p>';
}
echo '<p>ini_get(): upload_max_filesize = ' . ini_get('upload_max_filesize') . '.</p>';

Он выводит:

Loaded php.ini: /etc/opt/rh/rh-php56/php.ini.
Line 810:  upload_max_filesize = 8M.
ini_get(): upload_max_filesize = 2M.

Т.е. путь к php.ini используется веб-сервером /etc/opt/rh/rh-php56/php.ini, и он устанавливает upload_max_filesize до 8M в строке 810. Тем не менее, значение, возвращаемое, когда я вызываю ini_get('upload_max_filesize') по умолчанию. (Да я иметь перезапустил Apache).

Нет ничего, что устанавливает upload_max_filesize в других .ini файлы или в .htaccess (Я много искал).

Я исчерпал свои возможности отладки и надеюсь на ответы, которые подскажут, как я могу это взломать.

Наконец-то разобрались!

Оказывается, перезапуска Apache (httpd) недостаточно для внесения изменений в php.ini вступят в силу с этой конкретной конфигурацией. Вам также необходимо перезапустить FastCGI Process Manager. Следующая команда разрешила это:

sudo systemctl restart rh-php56-php-fpm.service