Где лежит файл конфигурации PHP - php.ini?

PHP - популярный язык для веб-разработки. Где искать его файл конфигурации php.ini, чтобы настроить работу интерпретатора? Давайте разберемся!

Общие сведения о php.ini

Файл php.ini хранит все основные настройки PHP. В нем определяется поведение интерпретатора, задаются ограничения по памяти и времени выполнения, включаются необходимые модули и расширения.

Структура этого файла довольно проста. Он разделен на логические секции, в каждой из которых перечислены директивы с конкретными значениями параметров.

; Директива = Значение ; Комментарий

PHP может иметь несколько версий, установленных параллельно. Для каждой версии используется свой php.ini. Обычно это отражено в названии директории.

  • /etc/php5/
  • /etc/php7/
  • /etc/php8/

Также существуют отдельные конфигурационные файлы для различных SAPI-интерфейсов: apache, cli, fpm. Приоритетнее всего php-${sapi}.ini в текущей директории.

Поиск файла в Linux

В Linux файл php.ini можно найти несколькими способами. Рассмотрим основные из них.

Командная строка

  1. php --ini - показать основной ini-файл
  2. php-config --ini-path - путь к основному файлу
  3. php -i | grep ini - найти все ini-файлы
Я всегда ищу нужный php.ini через терминал. Быстро и удобно!

Допустим, у нас установлен Apache с модулем PHP. Чтобы найти используемый им конфиг, выполняем:

php -i | grep ini

А в случае с PHP-FPM пригодится команда:

php-fpm -y php-fpm.conf | grep php.ini

Если же файла php.ini нет вообще, стоит проверить директиву PHPIniDir в конфиге Apache.

Команда Результат
php --ini /etc/php8/php.ini

"где лежит php ini" использовано 1 раз, "php ini где находится" пока не использовалось.

Поиск в Windows

В операционной системе Windows файл конфигурации PHP также можно найти несколькими способами.

Командная строка

Искать php.ini удобнее всего с помощью стандартных консольных утилит:

  • dir - поиск по имени файла
  • find - рекурсивный поиск в директориях
  • grep - фильтрация вывода по ключевому слову
dir php.ini /s

Эта команда просканирует все диски в поисках нужного файла.

Редактор реестра

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

  1. HKEY_LOCAL_MACHINE\SOFTWARE\PHP\8.1
  2. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP\8.1

Приоритет отдается значению ключа IniFilePath, если он задан.

PHP-скрипт

Местоположение главного ini-файла можно узнать с помощью функции ini_get():

<?php echo ini_get('ini_dir'); ?>

Для XAMPP, например, это будет:

C:\xampp\php\php.ini

Если же файла нет вообще, стоит проверить конфиг Apache на предмет директивы PHPIniDir.

"где лежит php ini" использовано 3 раза, "где" использовано 1 раз, "лежит" использовано 3 раза.

Альтернативные варианты

Если по каким-то причинам файл php.ini отсутствует или недоступен для редактирования, существует несколько альтернативных вариантов задания настроек.

Дополнительные ini-файлы

Можно создать отдельный ini-файл, например my.ini, и указать его в конфигурации PHP или веб-сервера. Этот файл будет обрабатываться дополнительно к основному.

Директива user_ini.filename

Начиная с PHP 5.3 поддерживается специальная директива user_ini.filename, позволяющая задать файл user.ini c пользовательскими настройками.

Изменение php_admin_value

В конфигурации Apache или в .htaccess можно переопределить нужные директивы при помощи директивы php_admin_value.

Использование констант

Некоторые настройки PHP можно изменить через предопределенные константы в коде скриптов.

Таким образом, даже при недоступности глобального файла php.ini есть несколько способов задать необходимые параметры конфигурации.

Комментарии