
Файл php.ini управляет всеми ключевыми настройками PHP, включая лимиты памяти, размер загружаемых файлов и параметры ошибок. Точное его расположение зависит от способа установки PHP и операционной системы. В Linux по умолчанию он часто находится в директории /etc/php/7.x/apache2/ для Apache или /etc/php/7.x/cli/ для командной строки. В Windows путь обычно выглядит как C:\xampp\php\php.ini или C:\Program Files\PHP\php.ini.
Для быстрого определения текущего файла конфигурации можно использовать функцию PHP phpinfo(). Достаточно создать скрипт с одной строкой <?php phpinfo(); ?> и открыть его в браузере. В разделе Loaded Configuration File будет указан полный путь к активному php.ini. Этот метод актуален для любой платформы и версии PHP.
При изменении php.ini важно учитывать, что для веб-сервера Apache или Nginx требуется перезапуск службы, чтобы новые параметры вступили в силу. В средах с несколькими версиями PHP путь к php.ini может отличаться для каждой версии, поэтому проверка через phpinfo() или php —ini является обязательной практикой перед редактированием.
Как найти и определить расположение php.ini файла

Файл php.ini управляет настройками PHP. Его расположение зависит от способа установки PHP и операционной системы.
Основные методы определения местоположения php.ini:
-
Через командную строку:
- В Linux/MacOS выполните команду:
php --ini. Она выведет путь к основному файлу конфигурации и дополнительные загруженные файлы. - В Windows откройте командную строку и выполните
php --iniдля аналогичного результата.
- В Linux/MacOS выполните команду:
-
Используя скрипт PHP:
- Создайте файл
info.phpс содержимым:<?php phpinfo(); ?> - Откройте файл в браузере. В разделе Loaded Configuration File указан точный путь к php.ini, который используется сервером.
- Создайте файл
-
Проверка стандартных директорий:
- Linux:
/etc/php/{версия}/cli/php.iniи/etc/php/{версия}/apache2/php.ini - Windows:
C:\PHP\php.iniили директория установки PHP - MacOS через Homebrew:
/usr/local/etc/php/{версия}/php.ini
- Linux:
-
Поиск файлов вручную:
- В Linux:
find / -name php.ini 2>/dev/null - В Windows используйте встроенный поиск в проводнике по имени
php.ini
- В Linux:
После определения пути к php.ini можно создавать резервные копии перед изменением настроек, чтобы избежать ошибок конфигурации.
Обратите внимание, что CLI и веб-сервер могут использовать разные файлы php.ini. Проверяйте их отдельно для командной строки и веб-сервера.
Проверка текущего пути php.ini через phpinfo()
- Создайте новый PHP-файл, например
info.php. - Добавьте в файл следующий код:
<?php phpinfo(); ?>
- Сохраните изменения и откройте файл через браузер:
http://ваш_домен/info.php - На странице найдите блок Loaded Configuration File. Этот пункт отображает полный путь к используемому
php.ini. - Если поле содержит (none), PHP работает без файла конфигурации, и настройки нужно создавать вручную или через
.user.ini.
Дополнительно обратите внимание на:
- Configuration File (php.ini) Path – путь, где PHP ищет конфигурационный файл по умолчанию.
- Версию PHP, так как разные версии могут использовать разные
php.ini. - Раздел Additional .ini files parsed – список всех дополнительных конфигурационных файлов, загруженных PHP.
После определения пути php.ini изменения можно вносить напрямую, затем необходимо перезапустить веб-сервер для применения новых настроек.
Использование phpinfo() – самый надежный метод для проверки фактического пути php.ini на конкретном сервере, включая различия между CLI и веб-сервером.
Использование команды php —ini в терминале
Для выполнения команды откройте терминал и введите:
php --ini
| Блок | Описание |
|---|---|
| Loaded Configuration File | Полный путь к основному файлу php.ini. Если указано (none), значит PHP использует настройки по умолчанию. |
| Scan for additional .ini files in | Путь к каталогу с дополнительными конфигурациями. Файлы здесь автоматически подключаются при запуске PHP. |
| Additional .ini files parsed | Список всех дополнительных файлов, которые были загружены и применены к текущей сессии PHP. |
Примеры использования команды для разных целей:
| Команда | Назначение |
|---|---|
php --ini |
Показывает основной и дополнительные файлы конфигурации. |
php -i | grep "Loaded Configuration File" |
|
php -c /путь/к/другому/php.ini -i |
Позволяет проверить конфигурацию другой версии php.ini без изменения системной. |
Использование php --ini полезно при отладке ошибок конфигурации, проверке загрузки модулей и корректной настройки расширений, особенно если на сервере установлено несколько версий PHP.
Поиск php.ini в стандартных директориях PHP

Для сборки PHP из исходников файл php.ini может отсутствовать по умолчанию. В этом случае PHP ищет шаблон php.ini-development или php.ini-production в директории PHP_PREFIX/lib, где PHP_PREFIX – путь установки PHP.
Командой php --ini можно получить полный список директорий, где PHP ищет конфигурацию, включая загруженный php.ini. Строка Loaded Configuration File покажет точное расположение активного файла.
Если php.ini не найден в стандартных местах, рекомендуется создать собственный файл в корневой директории PHP или указать путь через параметр -c при запуске CLI: php -c /путь/к/php.ini script.php.
Важно учитывать, что веб-серверы могут использовать отдельный php.ini. Например, Apache с модулем PHP может загружать конфигурацию из /etc/php/{версия}/apache2/php.ini, а Nginx с PHP-FPM – из /etc/php/{версия}/fpm/php.ini. Проверка через phpinfo() в браузере покажет точный путь для веб-сервера.
Определение активного php.ini для веб-сервера

Для точного определения используемого веб-сервером php.ini создайте файл с именем info.php в корне сайта и поместите в него:
<?php phpinfo(); ?>
Для Apache на Linux альтернативно можно использовать команду в терминале:
apache2ctl -t -D DUMP_RUN_CFG | grep 'Loaded Configuration'
Для Nginx с PHP-FPM путь к php.ini определяется конфигурацией пула в файле www.conf через параметр php_ini или через команду:
php-fpm -i | grep "Loaded Configuration File"
Если сервер использует несколько версий PHP, уточните версию через php -v или добавьте путь к конкретной бинарной версии PHP в команду. Это гарантирует корректное определение именно того php.ini, который применяет веб-сервер.
Проверка локальных и пользовательских конфигураций PHP

Для точной диагностики локальных и пользовательских настроек PHP необходимо различать основной php.ini и конфигурации, переопределяемые в конкретных скриптах или директориях. Основной файл обычно находится в директории, указанной в phpinfo() как Loaded Configuration File. Локальные изменения могут применяться через:
- директории с файлом .user.ini (актуально для PHP-FPM и Apache с mod_php);
- директивы ini_set() в скриптах;
- локальные конфигурации в php-fpm.d/*.conf для пулов FPM.
Для проверки активных настроек используйте скрипт с функцией phpinfo(). Таблица ниже демонстрирует основные параметры, которые следует контролировать при диагностике локальных переопределений:
| Параметр | Описание | Методы проверки |
|---|---|---|
| memory_limit | Ограничение памяти для выполнения скрипта | phpinfo(), ini_get(‘memory_limit’), проверка .user.ini |
| upload_max_filesize | Максимальный размер загружаемого файла | phpinfo(), ini_get(‘upload_max_filesize’), проверка .user.ini |
| post_max_size | Максимальный размер POST-запроса | phpinfo(), ini_get(‘post_max_size’), проверка .user.ini |
| display_errors | phpinfo(), ini_get(‘display_errors’), ini_set() в скриптах | |
| error_reporting | Уровень логирования ошибок | phpinfo(), ini_get(‘error_reporting’), ini_set() в скриптах |
Для детальной проверки локальных настроек можно использовать команду CLI:
php -i | grep 'Configuration File'
Она покажет основной и дополнительные загруженные конфигурации. В случае обнаружения конфликтов между основным php.ini и локальными .user.ini, значения последних имеют приоритет для соответствующих директорий.
Также важно проверять права доступа на файлы конфигураций: PHP игнорирует файлы, к которым нет прав чтения. Для веб-сервера это обычно пользователь www-data или apache.
Резюмируя, последовательная проверка phpinfo(), ini_get() и локальных .user.ini позволяет определить все активные параметры PHP и локальные переопределения, исключая догадки и устаревшие настройки.
Пример кода:
<?php
phpinfo();
?>
Сохраните файл, например, как info.php в корне веб-сервера и откройте через браузер: http://ваш_домен/info.php. В разделе Loaded Configuration File будет указан полный путь к активному php.ini. Если значение (none), это означает, что PHP использует стандартные настройки по умолчанию без загруженного файла.
Для CLI версию PHP можно определить путь командой:
php —ini
После определения пути рекомендуется проверить права доступа к php.ini. PHP должен иметь возможность читать файл для корректного применения настроек. Любые изменения требуют перезапуска веб-сервера или службы PHP-FPM.
Изменение и тестирование нового php.ini
Перед редактированием создайте резервную копию текущего php.ini. Это позволит быстро восстановить рабочие настройки в случае ошибок.
Откройте php.ini через текстовый редактор с поддержкой UNIX- и Windows-форматов, например, VS Code или Notepad++. Настройки чувствительны к регистру и точкам с запятой, используемым для комментариев.
Для изменения лимита памяти используйте директиву memory_limit, например: memory_limit = 512M. Для увеличения максимального времени выполнения скрипта настройте max_execution_time = 120. Изменения должны быть применены без пробелов вокруг знака равенства.
Если требуется подключение дополнительных расширений, убедитесь, что путь указан правильно. Например: extension=php_mbstring.dll для Windows или extension=mbstring.so для Linux. После добавления расширений сохраните файл.
Перезапуск веб-сервера обязателен для применения новых настроек. Для Apache используйте apachectl restart или systemctl restart apache2. Для Nginx с PHP-FPM – systemctl restart php8.1-fpm (уточните версию PHP).
Для проверки примененных изменений создайте файл info.php с кодом: <?php phpinfo(); ?>. Откройте его в браузере и убедитесь, что значения директив соответствуют внесенным изменениям.
Если после перезапуска сервера настройки не применяются, проверьте, что php.ini редактировался в правильном каталоге. Команда php --ini покажет активный путь к файлу конфигурации.
Для тестирования отдельных директив используйте команду CLI: php -r 'echo ini_get("memory_limit");'. Она возвращает текущее значение параметра без необходимости перезагрузки сервера.
Вопрос-ответ:
Как узнать, где находится php.ini на моем сервере?
Самый простой способ — создать небольшой PHP-скрипт с функцией phpinfo(). При запуске скрипта в браузере появится страница с информацией о конфигурации PHP. На ней есть строка «Loaded Configuration File», где указано точное расположение php.ini, который использует сервер.
Можно ли использовать несколько файлов php.ini для разных проектов на одном сервере?
Да, это возможно. В зависимости от способа запуска PHP (например, через Apache, Nginx с FPM или CLI) можно указать отдельный файл конфигурации для конкретного виртуального хоста или для командной строки. Для Apache часто применяют директиву PHPINIDir в конфигурации виртуального хоста, а для FPM — параметр php_admin_value в пуле процессов.
Что делать, если phpinfo() показывает, что файл php.ini не загружен?
В некоторых случаях PHP может работать без явного файла конфигурации. Тогда phpinfo() покажет «none» в поле «Loaded Configuration File». Чтобы задать настройки, нужно создать собственный php.ini в стандартной директории конфигурации или использовать файл .user.ini для отдельных каталогов, если сервер поддерживает эту возможность.
Как изменить настройки PHP, если я нашел php.ini?
После того как определено местоположение php.ini, его можно открыть любым текстовым редактором и изменить нужные параметры, например, лимиты памяти или время выполнения скриптов. После внесения изменений требуется перезапустить веб-сервер, чтобы новые значения вступили в силу. Некоторые хостинги также разрешают редактировать настройки через панель управления без прямого редактирования файла.
Отличается ли php.ini для CLI и веб-сервера?
Да, PHP использует отдельные конфигурации для командной строки и для веб-сервера. Для CLI php.ini может находиться в другой директории, а значения некоторых параметров, таких как max_execution_time, могут отличаться. Узнать путь для CLI можно, выполнив команду php -i | grep «Loaded Configuration File» в терминале.
