#Симптом и границы применимости
Команда php -i либо php --ini показывает конфигурацию PHP для командной строки, а PHP-FPM загружает собственный php.ini, дополнительные .ini и настройки пула. Различия в memory_limit, upload_max_filesize или расширениях не обязательно означают неисправность: нужно определить, какие настройки применяются к веб-запросу.
#Возможные причины и как их отличить
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Разные SAPI и каталоги php.iniРазные SAPI могут иметь отдельные файлы конфигурации. | php --ini и значение PHP_INI_LOADED_FILE в веб-запросе отличаются | Сопоставить CLI и FPM нужной версии |
| В пуле задано переопределениеЗначения из пула могут иметь приоритет над общим php.ini. | php_admin_value либо php_value меняют параметр для сайта | Найти переопределение в конфигурации пула |
| Веб-сайт работает на другой версииУстановленный CLI PHP не обязательно обслуживает сайт. | PHP_VERSION веб-сайта отличается от php -v | Уточнить FPM и сокет домена |
#Пошаговая диагностика и исправление
- Запишите конкретный расходящийся параметрВыполните в SSH php -v и php --ini. Запишите версию CLI и Loaded Configuration File. Не меняйте глобальный php.ini, пока не определили, какой файл использует веб-сайт.
- Дополнительная команда по темеLinux · Терминал (Bash)Команда
php -v; php --ini
- Определите версию FPM через конфигурацию веб-сервераНайдите fastcgi_pass в Nginx либо SetHandler/ProxyPassMatch в Apache у конкретного сайта. Сверьте путь listen соответствующего пула FPM и имя службы. Проверка php-fpm -i, если доступна в вашей сборке, относится к этому бинарному файлу, но не всегда отражает переопределения пула.
- Доступна на Linux; только чтениеLinux · Терминал (Bash)КомандаНужен sudoДоступна на Linux; только чтение.
sudo ss -xlpn | grep -i fpm
- Сделайте закрытую проверку внутри приложенияВ тестовой копии сайта создайте страницу, доступную только администратору, которая выводит PHP_VERSION, php_sapi_name(), php_ini_loaded_file(), ini_get нужного параметра и extension_loaded для нужного модуля. Не размещайте phpinfo() в открытом доступе. После проверки удалите временную страницу.
- Сверьте последовательность загрузки настроекПосмотрите loaded configuration file и scanned additional ini files для нужного PHP, затем файлы пула с php_value, php_admin_value и переменные окружения. Для параметров, меняемых в панели хостинга, используйте именно её интерфейс. Не копируйте конфиг CLI в FPM.
- Измените только правильный уровеньЕсли требуется memory_limit только одному сайту, используйте доступное для его пула переопределение согласно политике панели; если модуль не загружен, устанавливайте его для нужной версии/FPM. Сохраните копию конфигурации, проверьте синтаксис и примените в согласованное время.
- Исполняемый файл примерный; проверяет конфигурацию FPM указанной версииLinux · Терминал (Bash)С осторожностьюНужен sudoИсполняемый файл примерный; проверяет конфигурацию FPM указанной версии.
sudo php-fpm8.2 -tКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- Повторите независимое сравнениеЧерез закрытую страницу убедитесь, что веб-запрос получил нужный параметр и работает приложение. Сравните команду php --ini: она может оставаться другой — это допустимо. Удалите диагностическую страницу и проверьте, что её URL больше не выдаёт внутренние параметры.
#Как проверить результат
Параметр изменён именно в нужном FPM-пуле или веб-SAPI, сайт работает без ошибок, временная диагностическая страница недоступна извне и удалена.
#Если проблема не устранена
Если параметры не меняются, проверьте php_admin_value и другие переопределения, правильность выбора версии и необходимость reload выбранной FPM-службы.