Справочник

Где находится php.ini в Ubuntu

В Ubuntu у PHP два файла php.ini: /etc/php/8.3/fpm/php.ini — для сайта на nginx и /etc/php/8.3/cli/php.ini — для команды php в окне SSH. Для сайта правьте первый и после правки перезапустите PHP-FPM.

≈ 5 мин чтения
Содержание 8

Что сделать прямо сейчас

  1. Команды вводятся на сервере: подключитесь к нему по SSH ([как подключиться](/instrukcii/kak-podklyuchitsya-k-vps-po-ssh/)) и набирайте их в том же окне.
  2. Узнайте, какой файл читает PHP для сайта: php-fpm8.3 -i | grep 'Loaded Configuration File'. В ответе — строка Loaded Configuration File => /etc/php/8.3/fpm/php.ini.
  3. Откройте этот файл: sudo nano /etc/php/8.3/fpm/php.ini. Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — наберите пароль и нажмите Enter.
  4. Поменяйте нужную настройку, сохраните файл: Ctrl+O, Enter, затем Ctrl+X.
  5. Перезапустите PHP-FPM: sudo systemctl restart php8.3-fpm. Если команда ничего не ответила, PHP перезапущен.

Команды — для PHP 8.3 из Ubuntu 24.04. В Ubuntu 26.04 стоит PHP 8.5: в путях и командах вместо 8.3 пишите 8.5. Какая версия у вас, покажет ls /etc/php/.

Какие файлы настроек есть

Файл или папкаЧто в нём
/etc/php/8.3/fpm/php.iniнастройки PHP для сайта: его читает PHP-FPM
/etc/php/8.3/fpm/conf.d/файлы модулей для сайта; читаются после php.ini и могут поменять его значения
/etc/php/8.3/fpm/pool.d/www.confпул PHP-FPM: сколько процессов, сокет, пользователь; здесь же можно задать настройки PHP для сайтов пула
/etc/php/8.3/fpm/php-fpm.confнастройки самой службы PHP-FPM: журнал и подключение пулов
/etc/php/8.3/cli/php.iniнастройки для команды php в окне SSH и для заданий cron, которые её запускают
/etc/php/8.3/cli/conf.d/файлы модулей для командной строки
/etc/php/8.3/mods-available/файлы всех модулей; в папках conf.d — ссылки на них
/usr/lib/php/8.3/php.ini-productionоригинал php.ini для сайта из пакета: с ним можно сравнить свой файл

Файлы для сайта и для командной строки отличаются тремя строками: memory_limit, expose_php и disable_functions. В командной строке memory_limit = -1 — без лимита памяти.

Почему php --ini показывает не тот файл

ivan@myserver:~$ php --ini
Configuration File (php.ini) Path: /etc/php/8.3/cli
Loaded Configuration File:         /etc/php/8.3/cli/php.ini
Scan for additional .ini files in: /etc/php/8.3/cli/conf.d

Команда php — это PHP для командной строки, и php --ini показывает его файлы: папку cli. Сайт на nginx работает через PHP-FPM, и его файл показывает другая команда:

ivan@myserver:~$ php-fpm8.3 -i | grep 'Loaded Configuration File'
Loaded Configuration File => /etc/php/8.3/fpm/php.ini

Если правите php.ini из папки cli, сайт изменений не увидит.

Как посмотреть свои изменения

Сравните свой php.ini с оригиналом из пакета:

diff /usr/lib/php/8.3/php.ini-production /etc/php/8.3/fpm/php.ini

Если команда ничего не вывела, файл не меняли. Иначе она покажет отличия: строки со знаком < в начале — из оригинала, со знаком > — из вашего файла. Так видно, что вы уже поменяли и не осталось ли лишней правки. Для командной строки оригинал — /usr/lib/php/8.3/php.ini-production.cli.

Если изменения не применились

ПричинаКак проверить и исправить
правили файл для командной строкидля сайта нужен /etc/php/8.3/fpm/php.ini
PHP-FPM не перезапущенsudo systemctl restart php8.3-fpm
в начале строки осталась точка с запятойуберите её: строка с ; не действует
настройка задана ещё где-тонайдите все строки: grep -rn memory_limit /etc/php/8.3/fpm/ — вместо memory_limit своя настройка. Файлы из conf.d и пулы меняют значение из php.ini
настройка задана в .user.iniнайдите такие файлы: sudo find /var/www -name .user.ini
сайт работает на другой версии PHPпосмотрите сокет в настройках nginx: grep -rn fastcgi_pass /etc/nginx/sites-enabled/

Проверьте, что вышло: php-fpm8.3 -i | grep memory_limit. Значения из пула и .user.ini эта команда не видит. Значение, которое видит сайт, точнее всего показывает phpinfo() на странице сайта: оно учитывает и настройки пула PHP-FPM, и файл .user.ini.

На виртуальном хостинге

На виртуальном хостинге php.ini не правят: версию PHP и настройки меняют в панели хостинга, в разделе с настройками PHP.

Источники

Сверено 14 октября 2026 года.

Что почитать дальше