
В Ubuntu файл конфигурации PHP, php.ini, располагается в зависимости от версии PHP и способа его установки. Для стандартных пакетов из репозитория путь обычно выглядит как /etc/php/версия/cli/php.ini для командной строки и /etc/php/версия/apache2/php.ini для интеграции с Apache.
Для пользователей Nginx с PHP-FPM файл находится в каталоге /etc/php/версия/fpm/php.ini. Проверить точный путь можно с помощью команды php —ini, которая выведет список всех загружаемых конфигурационных файлов.
Изменения в php.ini требуют перезапуска соответствующего сервиса: sudo systemctl restart apache2 для Apache и sudo systemctl restart phpверсия-fpm для PHP-FPM. Для редактирования рекомендуется использовать текстовые редакторы с поддержкой sudo, например sudo nano /etc/php/версия/apache2/php.ini.
Для отдельных проектов можно создавать пользовательские настройки через файл .user.ini в корневом каталоге проекта, что позволяет не изменять глобальные параметры php.ini и избегать конфликтов между проектами.
Расположение файла php.ini в Ubuntu
В Ubuntu файл конфигурации PHP находится в зависимости от версии PHP и способа установки. Для стандартной установки через apt расположение обычно следующее:
Для PHP, установленного как модуль Apache:
/etc/php/8.1/apache2/php.ini
Для CLI-версии PHP:
/etc/php/8.1/cli/php.ini
Для PHP-FPM:
/etc/php/8.1/fpm/php.ini
Версию PHP можно уточнить командой php -v, что поможет корректно выбрать путь к php.ini.
Чтобы определить активный конфигурационный файл в текущей среде, используйте команду:
php --ini – она покажет путь к файлу Loaded Configuration File и дополнительные пути для дополнительных конфигураций.
При изменении php.ini для Apache или PHP-FPM требуется перезапуск соответствующего сервиса:
sudo systemctl restart apache2 или sudo systemctl restart php8.1-fpm.
Если PHP установлен из сторонних репозиториев или компилирован вручную, файл php.ini может находиться в /usr/local/lib/php.ini или /usr/local/etc/php.ini. Проверка через php --ini остаётся самым надёжным методом.
Проверка текущего пути php.ini через команду php —ini

Для определения точного местоположения конфигурационного файла PHP в Ubuntu используется команда:
php --ini
- Loaded Configuration File – путь к загруженному php.ini.
- Scan for additional .ini files in – директория, где PHP ищет дополнительные конфигурационные файлы.
- Additional .ini files parsed – перечень всех файлов .ini, которые были прочитаны после основного.
Configuration File (php.ini) Path: /etc/php/8.1/cli
Loaded Configuration File: /etc/php/8.1/cli/php.ini
Scan for additional .ini files in: /etc/php/8.1/cli/conf.d
Additional .ini files parsed: /etc/php/8.1/cli/conf.d/10-mysqlnd.ini,
/etc/php/8.1/cli/conf.d/10-opcache.ini
Рекомендации при работе с командой:
- Для CLI и веб-сервера пути могут отличаться. Проверку для веб-сервера выполняют через
phpinfo()в скрипте. - Если php.ini не загружен, убедитесь, что установлен пакет
phpX.Y-cli, где X.Y – версия PHP. - Используйте полные пути из Loaded Configuration File для внесения изменений, чтобы избежать конфликта с дополнительными файлами из
conf.d. - После изменений перезапустите веб-сервер или PHP-FPM для применения новых настроек.
Использование phpinfo() для определения активного php.ini

Создайте файл, например info.php, в директории веб-сервера с содержимым:
<?php phpinfo(); ?>
Откройте файл через браузер по адресу http://localhost/info.php. Найдите строку Loaded Configuration File – она показывает полный путь к активному php.ini.
На Ubuntu с PHP из стандартного репозитория путь обычно /etc/php/8.2/apache2/php.ini для Apache или /etc/php/8.2/cli/php.ini для командной строки. Версия PHP определяет точное расположение.
Если Loaded Configuration File пустой, PHP не использует конфигурационный файл. В этом случае скопируйте php.ini-production или php.ini-development из /etc/php/8.2/ и переименуйте в php.ini.
После изменений в php.ini перезапустите веб-сервер командой sudo systemctl restart apache2 для Apache или sudo systemctl restart php8.2-fpm для Nginx с PHP-FPM.
phpinfo() отображает текущие директивы, загруженные модули и значения настроек, что позволяет корректно управлять конфигурацией PHP и избегать конфликтов между CLI и веб-сервером.
Стандартные пути php.ini для Apache в Ubuntu
В Ubuntu для веб-сервера Apache основной файл конфигурации PHP обычно находится по пути /etc/php/<версия>/apache2/php.ini. Здесь <версия> соответствует установленной версии PHP, например 8.1 или 8.2.
Дополнительно система может использовать файлы conf.d, расположенные в /etc/php/<версия>/apache2/conf.d/. В этих каталогах хранятся отдельные конфигурации модулей PHP, подключаемые автоматически при запуске Apache.
После внесения изменений в php.ini перезапуск Apache обязателен: sudo systemctl restart apache2. Без этого новые настройки не применяются.
Для разных версий PHP на одном сервере пути к php.ini различаются. Например, для PHP 7.4 это /etc/php/7.4/apache2/php.ini, для PHP 8.1 – /etc/php/8.1/apache2/php.ini. Следует убедиться, что изменения вносятся в файл версии, используемой Apache.
Если требуется временная настройка для конкретного виртуального хоста, можно использовать директиву php_value в файле конфигурации Apache вместо изменения глобального php.ini.
Стандартные пути php.ini для Nginx и PHP-FPM

В Ubuntu местоположение файла php.ini зависит от версии PHP и способа интеграции с веб-сервером. Для Nginx, который использует PHP через PHP-FPM, конфигурация PHP хранится отдельно для каждого пула процессов.
| Версия PHP | Файл php.ini для CLI | Файл php.ini для PHP-FPM | Комментарии |
|---|---|---|---|
| PHP 8.2 | /etc/php/8.2/cli/php.ini |
/etc/php/8.2/fpm/php.ini |
Разделение позволяет иметь разные настройки для командной строки и веб-сервера |
| PHP 8.1 | /etc/php/8.1/cli/php.ini |
/etc/php/8.1/fpm/php.ini |
PHP-FPM использует конфигурацию пула процессов из fpm/pool.d/*.conf |
| PHP 7.4 | /etc/php/7.4/cli/php.ini |
/etc/php/7.4/fpm/php.ini |
После изменения php.ini требуется перезапуск службы sudo systemctl restart php7.4-fpm |
Для проверки, какой php.ini используется PHP-FPM, достаточно выполнить команду:
php-fpm8.2 -i | grep "Loaded Configuration File"
Если конфигурация пула изменена через /etc/php/8.2/fpm/pool.d/www.conf, параметр php_admin_value[include_path] может переопределять глобальный php.ini. Важно учитывать это при настройке расширений и ограничений памяти.
Для Nginx PHP-FPM важно, чтобы версия PHP в fastcgi_pass совпадала с файлом php.ini, используемым FPM, иначе настройки, например upload_max_filesize или post_max_size, будут игнорироваться.
Поиск дополнительных конфигураций php.ini для CLI

Дополнительные конфигурации обычно находятся в директории /etc/php/{версия}/cli/conf.d/. Каждая настройка хранится в отдельном файле, который подключается автоматически через директиву scan_dir. Файлы нумеруются префиксом, например 10-mysql.ini, чтобы задавать порядок загрузки.
Для поиска всех активных настроек CLI можно использовать команду php -i | grep «Loaded Configuration», она укажет основной php.ini и путь к дополнительным конфигурациям.
При необходимости добавить пользовательские настройки для CLI создайте отдельный файл *.ini в каталоге conf.d и убедитесь, что имя файла соответствует порядку загрузки. После изменения конфигурации проверяйте результат с помощью php —ini и php -i.
Если система содержит несколько версий PHP, CLI может использовать файл конфигурации другой версии. Уточнить версию можно командой php -v, а для явного указания конфигурации использовать php -c /путь/к/php.ini.
Изменение расположения php.ini через переменные окружения

Переменная окружения PHPRC позволяет указать альтернативный путь к файлу php.ini для CLI и веб-сервера. Она заменяет системный php.ini без редактирования глобальных конфигураций.
Для временной настройки в текущей сессии терминала используйте:
export PHPRC=/путь/к/новому/php.ini
После этого команда php -i | grep "Loaded Configuration File" покажет путь к указанному файлу.
Для постоянного изменения переменной добавьте строку в профиль пользователя:
- Bash:
~/.bashrcили~/.bash_profile - Zsh:
~/.zshrc
export PHPRC=/etc/php/8.2/cli/custom_php.ini
Примените изменения командой source ~/.bashrc или перезапустите терминал.
Для Apache или Nginx с PHP-FPM переменная задаётся в конфигурации службы systemd:
[Service]
Environment="PHPRC=/путь/к/новому/php.ini"
После внесения изменений выполните:
sudo systemctl daemon-reexecsudo systemctl restart apache2илиsudo systemctl restart php8.2-fpm
Проверка через phpinfo() на веб-сервере подтвердит использование нового php.ini.
Проверка и применение изменений после редактирования php.ini

После внесения изменений в файл php.ini необходимо перезапустить веб-сервер, чтобы настройки вступили в силу. Для Apache используется команда sudo systemctl restart apache2, для Nginx с PHP-FPM – sudo systemctl restart php8.1-fpm (номер версии PHP заменяется на актуальный).
Для проверки применённых настроек создайте файл info.php в корне веб-сервера с содержимым <?php phpinfo(); ?>. Откройте его через браузер, чтобы убедиться, что изменённые параметры отображаются корректно.
Из консоли проверить текущие значения параметров можно командой php -i | grep 'имя_параметра'. Например, php -i | grep memory_limit покажет установленный лимит памяти.
Если изменения не отображаются, убедитесь, что редактировался активный файл php.ini. Узнать его расположение можно через php --ini или проверив строку Loaded Configuration File в phpinfo().
После корректного применения изменений рекомендуется очистить кеш PHP и веб-сервера, если используется OPcache или аналогичные механизмы: sudo systemctl reload php8.1-fpm или sudo systemctl reload apache2. Это гарантирует актуальность всех настроек без перезапуска всей системы.
Вопрос-ответ:
Где находится файл php.ini в Ubuntu после установки PHP через apt?
В Ubuntu расположение php.ini зависит от версии PHP и типа используемого сервера. Для PHP, установленного через apt, основной файл конфигурации обычно находится в каталоге /etc/php/версия/php.ini. Например, для PHP 8.1 путь будет /etc/php/8.1/cli/php.ini для командной строки и /etc/php/8.1/apache2/php.ini для работы с Apache.
Можно ли узнать путь к php.ini с помощью командной строки?
Да, путь к файлу php.ini можно определить через команду php. Введите php —ini или php -i | grep «Loaded Configuration File». В первом случае команда покажет список всех конфигурационных файлов, включая основной. Во втором случае grep выделит конкретный путь к загруженному php.ini.
Почему иногда изменений в php.ini не хватает после редактирования?
Причиной может быть то, что PHP использует разные конфигурации для веб-сервера и командной строки. Например, редактирование /etc/php/8.1/cli/php.ini повлияет только на запуск PHP из терминала, но веб-сервер продолжит использовать /etc/php/8.1/apache2/php.ini. После изменений необходимо перезапустить веб-сервер, чтобы новые настройки вступили в силу.
Как найти php.ini для конкретного веб-сервера, если на системе установлено несколько версий PHP?
Для точного определения используемого php.ini для веб-сервера можно создать файл с содержимым и открыть его через браузер. В выводе будет строка Loaded Configuration File, где указан полный путь к файлу конфигурации, который применяет веб-сервер с данной версией PHP.
Можно ли использовать один php.ini для разных версий PHP в Ubuntu?
В Ubuntu каждая версия PHP имеет свой собственный каталог конфигурации, поэтому один файл php.ini на несколько версий напрямую не применяется. Можно вручную синхронизировать настройки между версиями, копируя или объединяя изменения, но это требует аккуратности, так как некоторые параметры могут различаться между версиями.
Где находится файл php.ini в Ubuntu после установки Apache и PHP?
Файл php.ini в Ubuntu может располагаться в разных местах, в зависимости от версии PHP и того, как он установлен. Для PHP, установленного через пакетный менеджер apt, основной файл обычно находится по пути /etc/php/[версия]/apache2/php.ini для Apache и /etc/php/[версия]/cli/php.ini для командной строки. Например, для PHP 8.1 это будет /etc/php/8.1/apache2/php.ini и /etc/php/8.1/cli/php.ini соответственно. Чтобы убедиться, какой именно файл используется веб-сервером, можно создать PHP-скрипт с функцией phpinfo() и открыть его в браузере — там будет указан точный путь.
Можно ли изменить настройки PHP, если не удается найти php.ini?
Да, даже если путь к php.ini не очевиден, есть несколько способов изменить настройки PHP. Один из вариантов — создать файл phpinfo.php с вызовом функции phpinfo() и посмотреть, какой файл php.ini используется. Иногда PHP работает с настройками по умолчанию, если файл отсутствует. В таких случаях можно скопировать файл php.ini-production или php.ini-development из каталога установки PHP в нужное место и отредактировать его. Также отдельные настройки можно временно изменить с помощью директив в файле .htaccess или внутри скрипта через ini_set(). После изменений, если настройки касаются веб-сервера, необходимо перезапустить Apache командой sudo systemctl restart apache2.
