
Файл php.ini управляет конфигурацией PHP и влияет на работу веб-сервера и CLI. В Ubuntu его местоположение зависит от установленной версии PHP и типа окружения – Apache, Nginx или командной строки. Для PHP, работающего через Apache, стандартный путь обычно /etc/php/[версия]/apache2/php.ini. Для PHP CLI используется /etc/php/[версия]/cli/php.ini, где [версия] соответствует установленной версии PHP, например 8.2.
Изменения в php.ini вступают в силу после перезапуска веб-сервера. Для Apache это sudo systemctl restart apache2, для PHP-FPM – sudo systemctl restart php[версия]-fpm. Локальные файлы php.ini можно создавать в каталогах конкретных проектов, чтобы переопределять системные настройки без влияния на другие сайты.
Важным моментом является различие между системным и пользовательским php.ini. Системный влияет на все проекты на сервере, а пользовательский – только на конкретное окружение. Это позволяет точно настраивать лимиты памяти, размеры загружаемых файлов и другие параметры PHP для каждого проекта.
Расположение файла php.ini в Ubuntu

В Ubuntu расположение файла php.ini зависит от версии PHP и окружения, в котором он используется. Основные варианты размещения приведены в таблице ниже:
| Окружение | Путь к файлу php.ini |
|---|---|
| PHP для Apache | /etc/php/[версия]/apache2/php.ini |
| PHP для Nginx с PHP-FPM | /etc/php/[версия]/fpm/php.ini |
| PHP CLI (командная строка) | /etc/php/[версия]/cli/php.ini |
| Локальный php.ini для проекта | В каталоге проекта, например /var/www/project/php.ini |
При изменении настроек php.ini необходимо перезапустить соответствующий сервис. Для Apache это sudo systemctl restart apache2, для PHP-FPM – sudo systemctl restart php[версия]-fpm. Локальные файлы php.ini позволяют переопределять системные параметры без воздействия на другие проекты.
Где хранится основной файл php.ini для Apache
Основной файл php.ini для Apache в Ubuntu находится в каталоге, соответствующем версии установленного PHP. Для PHP 8.2 путь обычно выглядит как /etc/php/8.2/apache2/php.ini. Для других версий достаточно заменить номер версии в пути.
Файл управляет конфигурацией PHP при работе через веб-сервер Apache: лимиты памяти, максимальный размер загружаемых файлов, включение и отключение расширений. Изменения в этом файле влияют на все сайты, обслуживаемые сервером.
После внесения изменений необходимо перезапустить Apache с помощью команды sudo systemctl restart apache2, чтобы новые настройки вступили в силу. Локальные файлы php.ini в каталогах проектов при работе через Apache не переопределяют системный файл, поэтому любые глобальные параметры нужно менять именно в основном php.ini.
Расположение php.ini для PHP CLI в Ubuntu
Файл php.ini для PHP CLI в Ubuntu используется при запуске скриптов из командной строки. По умолчанию он находится в каталоге /etc/php/[версия]/cli/php.ini, где [версия] соответствует установленной версии PHP, например 8.2.
Этот файл позволяет настроить параметры PHP для командной строки, такие как максимальное время выполнения скрипта, лимит памяти и включение расширений, не влияя на конфигурацию веб-сервера. Это особенно полезно при запуске фоновых задач, скриптов cron или тестирования PHP-сценариев.
После внесения изменений в CLI php.ini перезапуск сервера не требуется, настройки применяются сразу при следующем запуске PHP в командной строке. Для тестирования новых параметров можно использовать php -i | grep memory_limit или аналогичные команды для проверки конкретных директив.
Как найти php.ini с помощью команды php —ini
Команда php —ini позволяет определить, какой файл php.ini используется PHP, а также список всех загружаемых дополнительных конфигураций. Это особенно важно при наличии нескольких версий PHP или локальных настроек для проектов.
Для использования команды выполните в терминале:
- Откройте терминал.
- Введите php —ini и нажмите Enter.
- Loaded Configuration File – основной файл php.ini.
- Scan for additional .ini files in – каталог с дополнительными файлами конфигурации.
- Additional .ini files parsed – список всех подключенных дополнительных файлов.
- Loaded Configuration File: /etc/php/8.2/cli/php.ini
- Scan for additional .ini files in: /etc/php/8.2/cli/conf.d
- Additional .ini files parsed: /etc/php/8.2/cli/conf.d/20-mbstring.ini, /etc/php/8.2/cli/conf.d/30-opcache.ini
Используя этот метод, можно точно определить путь к активному php.ini, проверить дополнительные конфигурации и убедиться, что изменения будут применены корректно. Это помогает избежать конфликтов при настройке PHP для CLI и веб-сервера.
Различия между системными и пользовательскими файлами php.ini
Системный php.ini в Ubuntu находится в каталогах /etc/php/[версия]/apache2/php.ini для веб-сервера и /etc/php/[версия]/cli/php.ini для командной строки. Он определяет настройки PHP для всех пользователей и проектов на сервере: лимиты памяти, максимальный размер загружаемых файлов, включение расширений.
Пользовательский php.ini создаётся в каталоге конкретного проекта и влияет только на это окружение. Он позволяет переопределять системные параметры без изменения глобальной конфигурации, что полезно для проектов с особыми требованиями к ресурсам или расширениям.
Основные различия:
- Область действия: системный – весь сервер, пользовательский – отдельный проект.
- Приоритет: настройки пользовательского php.ini перекрывают системные.
- Управление: системный требует прав root для изменения, пользовательский доступен обычным пользователям проекта.
Для корректного применения изменений в пользовательском php.ini важно убедиться, что веб-сервер или PHP-FPM настроены на поддержку локальных файлов, и перезапустить соответствующий сервис после внесения изменений.
Изменение пути к php.ini для разных версий PHP

В Ubuntu на одном сервере могут быть установлены несколько версий PHP. Каждая версия использует собственный файл php.ini, расположенный в каталоге /etc/php/[версия]/apache2/php.ini для веб-сервера и /etc/php/[версия]/cli/php.ini для командной строки. Для изменения настроек необходимо работать с файлом конкретной версии.
Для проверки активной версии PHP в CLI используется команда php -v. Для веб-сервера можно создать PHP-скрипт с phpinfo(), который покажет загруженный php.ini и версию PHP.
Чтобы переключить PHP на другую версию для Apache, применяются команды:
- sudo a2dismod php[текущая_версия] – отключение текущей версии.
- sudo a2enmod php[новая_версия] – активация нужной версии.
- sudo systemctl restart apache2 – перезапуск сервера для применения изменений.
Для PHP CLI можно изменить версию с помощью update-alternatives:
- sudo update-alternatives —config php – выбор версии CLI.
После переключения версии пути к php.ini изменяются автоматически, и необходимо редактировать соответствующий файл для внесения настроек. Это позволяет управлять параметрами PHP отдельно для каждой версии без конфликтов.
Проверка текущего файла php.ini через phpinfo()

Создайте в корне веб-проекта файл, например info.php, с содержимым:
<?php phpinfo(); ?>
Откройте файл в браузере по адресу http://ваш_сайт/info.php. В разделе Loaded Configuration File будет указан полный путь к активному php.ini. Дополнительно можно проверить каталоги с дополнительными файлами конфигурации в разделе Scan this dir for additional .ini files.
Этот метод позволяет убедиться, что изменения в php.ini применяются корректно, а также выявить, если используется неожиданный файл конфигурации или подключены дополнительные настройки, влияющие на работу PHP.
Создание локального php.ini для конкретного проекта
Локальный php.ini позволяет задать индивидуальные настройки PHP для одного проекта без изменения системного файла. Это полезно, когда проект требует специфических лимитов памяти, максимального размера загружаемых файлов или включения определённых расширений.
Алгоритм создания локального php.ini:
- Перейдите в корневой каталог проекта, например /var/www/project.
- Создайте файл php.ini с помощью команды touch php.ini или текстового редактора.
- Добавьте необходимые директивы. Примеры:
- memory_limit = 512M – лимит памяти.
- upload_max_filesize = 50M – максимальный размер загружаемых файлов.
- post_max_size = 50M – максимальный размер POST-запроса.
- extension=mbstring – подключение расширений.
- Сохраните изменения и убедитесь, что веб-сервер или PHP-FPM настроены на использование локальных php.ini.
- Перезапустите сервер: sudo systemctl restart apache2 или sudo systemctl restart php[версия]-fpm.
После этого проект будет использовать локальные настройки, не влияя на другие сайты и глобальный php.ini. Для проверки применённых параметров можно создать скрипт с phpinfo() в каталоге проекта.
Влияние изменения php.ini на работу веб-сервера и CLI
Изменения в файле php.ini напрямую влияют на работу PHP как в веб-среде, так и в командной строке. Для Apache или Nginx с PHP-FPM системный php.ini определяет параметры выполнения скриптов, лимиты памяти, обработку ошибок и активные расширения.
После редактирования системного php.ini необходимо перезапустить соответствующий сервис:
- sudo systemctl restart apache2 – для Apache.
- sudo systemctl restart php[версия]-fpm – для PHP-FPM.
Для PHP CLI изменения вступают в силу сразу после сохранения файла, перезапуск сервера не требуется. Это позволяет тестировать новые настройки скриптов напрямую из командной строки.
Некорректные значения в php.ini могут привести к ошибкам выполнения скриптов, ограничению функциональности или падению сервера. Поэтому рекомендуется:
- Создавать резервную копию php.ini перед изменениями.
- Использовать локальные php.ini для отдельных проектов, чтобы не нарушать глобальные настройки.
- Проверять применяемые параметры через phpinfo() или команду php -i.
Таким образом, контроль над php.ini позволяет точно настраивать поведение PHP и избегать конфликтов между веб-сервером и CLI.
Вопрос-ответ:
Где находится основной файл php.ini для Apache в Ubuntu?
В Ubuntu основной файл php.ini для Apache обычно находится по пути /etc/php/[версия]/apache2/php.ini, где [версия] соответствует установленной версии PHP, например 8.2. Этот файл задаёт параметры PHP для всех сайтов, обслуживаемых сервером, включая лимит памяти, максимальный размер загружаемых файлов и включённые расширения.
Как определить активный файл php.ini для командной строки?
Для PHP CLI активный файл php.ini можно определить с помощью команды php —ini. В выводе команды отображается основной загруженный файл и дополнительные конфигурации. Это позволяет точно узнать, какие настройки применяются при запуске скриптов из командной строки.
Можно ли использовать локальный php.ini для конкретного проекта?
Да, в каталоге проекта можно создать собственный файл php.ini. Он позволяет задавать параметры PHP только для этого проекта, такие как лимит памяти, максимальный размер POST-запроса или подключение расширений. Локальный php.ini не изменяет глобальные настройки сервера и применяется после перезапуска веб-сервера или при следующем запуске CLI.
Что произойдёт, если изменить системный php.ini без перезапуска сервера?
Изменения в системном php.ini для Apache или PHP-FPM вступают в силу только после перезапуска соответствующего сервиса (sudo systemctl restart apache2 или sudo systemctl restart php[версия]-fpm). Для PHP CLI перезапуск не нужен, новые значения применяются сразу при следующем запуске скрипта. Если перезапуск не выполнить, веб-сервер продолжит использовать старые настройки.
