Где лежит php.ini и как понять, какой файл настроек использует PHP

Короткий ответ: в терминале путь к php.ini можно увидеть командой php --ini, а на сайте — через php_ini_loaded_file() или phpinfo(). Но важно помнить: PHP для командной строки и PHP для сайта могут использовать разные файлы настроек

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

Проверка в терминале

Выполните

php --ini

Вы увидите что-то вроде

Configuration File (php.ini) Path: /etc/php/8.2/cli
Loaded Configuration File: /etc/php/8.2/cli/php.ini

Главная строка — Loaded Configuration File. Она показывает файл, который PHP реально загрузил для текущего запуска в терминале

Проверка через сайт

Создайте временный файл ini-check.php

<?php

echo php_ini_loaded_file() ?: 'php.ini не загружен';

Откройте его через браузер. Так вы проверите настройки именно веб-версии PHP, а не консоли

После проверки удалите файл

Проверка через phpinfo

<?php
phpinfo();

На странице ищите строки Loaded Configuration File и Scan this dir for additional .ini files. Но phpinfo() показывает много технических данных, поэтому оставлять такой файл на сайте нельзя

Почему в консоли и браузере разные php.ini

На сервере может быть несколько режимов PHP

  • CLI для командной строки
  • PHP-FPM для сайта
  • Apache module
  • отдельная версия PHP для конкретного домена
  • контейнер Docker

Поэтому команда php --ini может показывать один файл, а сайт — другой. Если вы меняете настройку для сайта, проверяйте ее в браузере

Типичные места php.ini

Пути зависят от системы и установки, но часто встречаются такие варианты

/etc/php/8.2/cli/php.ini
/etc/php/8.2/fpm/php.ini
/usr/local/etc/php/php.ini
C:\php\php.ini
C:\xampp\php\php.ini

Не угадывайте путь вручную. Лучше спросить сам PHP через php --ini или php_ini_loaded_file()

Если php.ini нет

Иногда PHP показывает, что файл конфигурации не загружен. Это не всегда значит, что PHP не работает. Он может использовать настройки по умолчанию или конфигурацию из другого места

На shared-хостинге прямого доступа к php.ini может не быть. Тогда параметры меняются через панель хостинга, .user.ini, .htaccess или отдельный раздел PHP-настроек

Как проверить конкретную настройку

<?php

echo 'memory_limit: ' . ini_get('memory_limit') . '<br>';
echo 'display_errors: ' . ini_get('display_errors') . '<br>';
echo 'upload_max_filesize: ' . ini_get('upload_max_filesize') . '<br>';

Так вы проверяете не только путь к файлу, но и реальное значение настройки

После изменения php.ini

Если вы изменили php.ini, может понадобиться перезапустить веб-сервер или PHP-FPM. Иначе сайт продолжит работать со старыми настройками

Для локального сервера это может быть перезапуск Apache в XAMPP. Для VPS — перезапуск PHP-FPM или веб-сервера. На хостинге чаще достаточно сохранить настройку в панели, но иногда изменение применяется не мгновенно

Мини-практика

Проверьте php --ini в терминале, затем создайте ini-check.php с php_ini_loaded_file() и откройте его через браузер. Если пути отличаются, запишите оба варианта и подпишите: “консоль” и “сайт”

Частые ошибки

Меняют CLI php.ini и ждут изменений на сайте Сайт может использовать другой файл настроек

Оставляют phpinfo на сайте После проверки удаляйте диагностический файл

Не перезапускают PHP после изменения Некоторые настройки применяются только после перезапуска сервиса

Ищут один универсальный путь Путь зависит от системы, версии PHP и способа запуска

Что почитать дальше по PHP

Если нужен общий маршрут по теме, откройте рубрику PHP. Для соседних задач пригодятся эти разборы:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x