Где лежит php.ini? 5 фатальных ошибок и как их избежать

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

«Где этот чёртов php.ini?» — вопрос, который сводит с ума даже опытных разработчиков

Вы когда-нибудь чувствовали себя охотником за сокровищами, но вместо золота искали php.ini? Если да — вы не одиноки. Вопрос «Where can I find php.ini?» на Stack Overflow собрал десятки тысяч просмотров. И это не случайно.

Представьте: вы установили PHP, написали идеальный код, а он упорно отказывается работать. Или вы меняете настройки в php.ini, перезагружаете сервер, а изменения… не применяются. Знакомо? Добро пожаловать в клуб.

В этой статье мы не просто покажем, где лежит php.ini. Мы разберём 5 самых частых ошибок, которые допускают разработчики, и дадим чёткие инструкции, как их избежать. Поехали!

Что такое php.ini и зачем он нужен?

php.ini — это главный конфигурационный файл PHP. Именно здесь вы управляете поведением языка: от максимального размера загружаемого файла до времени выполнения скрипта. Без него PHP работает «как бог на душу положит» — с настройками по умолчанию.

Вот несколько параметров, которые вы можете изменить в php.ini:

  • upload_max_filesize — максимальный размер загружаемого файла
  • max_execution_time — максимальное время выполнения скрипта
  • memory_limit — лимит памяти для скрипта
  • display_errors — показывать ли ошибки на экране
  • error_reporting — уровень отображения ошибок

Проблема в том, что на разных операционных системах и окружениях расположение php.ini отличается. И это первая ловушка для новичков.

Где искать php.ini: шпаргалка для всех ОС

Linux (Ubuntu, Debian, CentOS)

На Linux файл может находиться в нескольких местах. Самые популярные:

/etc/php/8.1/cli/php.ini   # для командной строки (CLI)
/etc/php/8.1/apache2/php.ini # для Apache
/etc/php/8.1/fpm/php.ini     # для PHP-FPM

Обратите внимание: версия PHP (8.1) может отличаться. Если у вас PHP 8.0, путь будет /etc/php/8.0/....

Как найти быстро? Выполните в терминале:

php --ini

Эта команда покажет путь к загруженному конфигурационному файлу.

Windows

На Windows php.ini обычно лежит в папке с установленным PHP:

C:\php\php.ini
C:\Program Files\PHP\php.ini
C:\xampp\php\php.ini    # если используете XAMPP
C:\wamp64\bin\php\php8.1.0\php.ini  # для WAMP

macOS

На macOS (если PHP установлен через Homebrew):

/usr/local/etc/php/8.1/php.ini
/opt/homebrew/etc/php/8.1/php.ini  # для Apple Silicon

Если используете встроенный PHP от Apple (не советуем), путь может быть другим.

Docker

В Docker контейнере путь стандартный для Linux:

/usr/local/etc/php/php.ini

Но лучше монтировать свой php.ini через volumes:

docker run -v /path/to/your/php.ini:/usr/local/etc/php/php.ini my-php-app

Топ-5 ошибок при работе с php.ini (и как их избежать)

Ошибка №1: Я меняю не тот php.ini

Это самая популярная проблема. Вы открываете файл, меняете настройки, перезагружаете сервер, а PHP продолжает работать по-старому. Почему? Потому что вы изменили не тот файл!

PHP может использовать разные php.ini для CLI (командная строка) и веб-сервера (Apache/Nginx).

Как избежать:

  1. Создайте PHP-файл с содержимым:
<?php
phpinfo();
?>
  1. Запустите его в браузере (если проверяете веб-версию) или в терминале (php yourfile.php).
  2. Найдите строку Loaded Configuration File — это путь к активному php.ini.

Теперь вы точно знаете, какой файл редактировать.

Ошибка №2: Забыл перезагрузить сервер

Вы изменили php.ini, но PHP не перечитывает его автоматически при каждом запросе. Если не перезагрузить сервер, изменения не вступят в силу.

Как избежать:

После изменений выполните одну из команд (в зависимости от сервера):

# Apache
sudo systemctl restart apache2
# или
sudo service apache2 restart

# Nginx + PHP-FPM
sudo systemctl restart php8.1-fpm
# или
sudo service php8.1-fpm restart

# Если используете PHP встроенный сервер
# Просто остановите и запустите заново

Ошибка №3: Неправильный синтаксис в php.ini

Одна лишняя точка с запятой или пробел — и PHP игнорирует всю директиву. А иногда и весь файл.

Пример правильного синтаксиса:

upload_max_filesize = 64M
post_max_size = 68M
max_execution_time = 300

Пример неправильного синтаксиса (так делать нельзя):

upload_max_filesize: 64M   # Ошибка! Нужно "=", а не ":"
upload_max_filesize =64M   # Можно, но лучше с пробелами
upload_max_filesize = 64M; # Точка с запятой — это комментарий в PHP, но не в php.ini!

Как избежать: После редактирования проверьте синтаксис командой:

php -r "parse_ini_file('/path/to/php.ini');"

Если ошибок нет, команда не выведет ничего. Если есть — PHP сообщит о проблеме.

Ошибка №4: Путаница между CLI и веб-версией

Вы настроили php.ini для веб-сервера, но запускаете скрипт из командной строки — и настройки не работают. Или наоборот.

PHP для CLI и для веб-сервера — это разные конфигурации. Они могут использовать разные php.ini.

Как избежать: Всегда проверяйте, для какого окружения вы меняете настройки. Если нужно применить изменения для обоих — редактируйте оба файла.

Пример: вы хотите увеличить лимит памяти для

Блоги

Рекомендаций по книгам