напишите на своем веб-сервере файл под названием test.php:
<? phpinfo(); ?>
Затем откройте его в своем браузере
там есть раздел
Directive Local Value Master Value
, где вы видите значения всех переменных и где они установлены: Локальное значение означает, что устанавливается в .htaccess или внутри php-скрипта с помощью ini_set ()
, также попробуйте http://php.net/manual/de/function.ini-get-all.php чтобы узнать источник содержимого ваших переменных.
Однажды у меня была глупая ошибка, когда я пытался установить для upload_max_filesize значение 200M: я написал «200MB» в php.ini, но это должно быть просто «200M» php интерпретирует неверное значение «200MB» как 0. Возможно, что-то из этого помогает
Запустите php -i
в терминале, и он пометит, есть ли у вас какие-либо синтаксические ошибки в вашем php.ini. Такие ошибки заставляют Apache не анализировать (игнорировать) директивы незаметно.
Вчера я столкнулся с той же проблемой. Я установил, что в системе был только один php.ini, phpinfo() сообщил, что действительно правильный php.ini использовался для конфигурации, я остановил httpd, проверил, что все экземпляры были убиты, затем перезапустил его, но php все еще использовал одинаковые значения. Это должно было означать, что другой процесс считывал и сохранял исходные значения в php.ini. Поиск php в списке процессов выявил несколько экземпляров php-fpm. Пытался убить его, а затем перезапуск апача. Это решило проблему. Пробовал больше изменений в php.ini и пробовал используя systemctl, перезагрузите php-fpm, и да, конечно, это сработало. Я не знаю, когда был сделан переход от mod_php, по-видимому, много лет назад, но я почему-то пропустил это, и более 90% серверов, которыми я управляю, все еще используют mod_php. Ни в одном из руководств, которые я читал для таких приложений, как Moodle, не упоминается ifpm.Все говорят, внесите изменения и перезапустите apache, никто из них не упоминает перезапуск fpm, но вот и все. Я предполагаю, что многие из запросов, поднятых на таких сайтах, как serverfault, связаны с этой проблемой. systemctl start httpd запускает демон fpm в дополнение к httpd, но systemctl stop httpd не останавливает php-fpm и не перезапускает sytemctl httpd, и неудивительно, что новый systemctl start httpd просто оставит старую версию работающей.
Таким образом, самый быстрый способ внести изменения — изменить php.ini и затем запустить systemctl перезагрузить php-fpm нет необходимости трогать демон httpd.