«Где этот чёртов 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).
Как избежать:
- Создайте PHP-файл с содержимым:
<?php
phpinfo();
?>
- Запустите его в браузере (если проверяете веб-версию) или в терминале (
php yourfile.php). - Найдите строку 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.
Как избежать: Всегда проверяйте, для какого окружения вы меняете настройки. Если нужно применить изменения для обоих — редактируйте оба файла.
Пример: вы хотите увеличить лимит памяти для