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 можно найти несколькими способами. Рассмотрим основные из них.
Командная строка
php --ini
- показать основной ini-файлphp-config --ini-path
- путь к основному файлу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 и разрядности системы. Например:
- HKEY_LOCAL_MACHINE\SOFTWARE\PHP\8.1
- 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 есть несколько способов задать необходимые параметры конфигурации.