Где находится файл php.ini и как его найти на Linux?
Как найти и использовать php.ini в Linux
Добрый день! Это классическая проблема начинающих Linux-пользователей. Давайте разберем всё по порядку. В Linux файл php.ini может находиться в разных местах в зависимости от способа установки PHP и его версии.
1. Быстрый способ найти php.ini
Самый надежный метод — использовать сам PHP. Создайте файл info.php с содержимым:
<?php
phpinfo();
?>
Запустите его через веб-сервер (например, откройте http://localhost/info.php) или выполните в командной строке:
php -i | grep "Loaded Configuration File"
В выводе вы увидите что-то вроде:
Loaded Configuration File => /etc/php/8.2/cli/php.ini
Или для веб-версии:
Loaded Configuration File => /etc/php/8.2/apache2/php.ini
2. Почему у вас пустая строка?
Если строка "Loaded Configuration File" пустая — это значит, что PHP запускается без конфигурационного файла. Такое бывает, если:
- Файл не был создан при установке (редко, но бывает)
- Вы используете PHP-FPM без настроенного пула
- Установлена только базовая версия PHP без модуля для Apache/Nginx
3. Типичные расположения php.ini в Linux
В Ubuntu/Debian файлы обычно находятся по следующим путям:
/etc/php/8.2/cli/php.ini— для командной строки (CLI)/etc/php/8.2/apache2/php.ini— для Apache/etc/php/8.2/fpm/php.ini— для PHP-FPM
Обратите внимание на версию PHP (8.2, 8.1, 7.4 и т.д.). Если вы установили PHP через apt install php, то обычно ставится последняя стабильная версия.
4. Что делать, если файла нет?
Создайте его из шаблона. В Ubuntu есть готовый файл с настройками по умолчанию:
sudo cp /usr/lib/php/8.2/php.ini-production /etc/php/8.2/cli/php.ini
Или используйте development-версию для разработки:
sudo cp /usr/lib/php/8.2/php.ini-development /etc/php/8.2/cli/php.ini
5. Как проверить, что изменения применились?
После редактирования файла обязательно перезапустите веб-сервер:
sudo systemctl restart apache2 # для Apache
sudo systemctl restart php8.2-fpm # для PHP-FPM
Для CLI изменений не требуется — каждый новый вызов php читает файл заново.
6. Пример изменения максимального размера загрузки
Откройте нужный php.ini и найдите/измените эти строки:
upload_max_filesize = 20M
post_max_size = 25M
max_execution_time = 300
После сохранения перезапустите сервер и проверьте через phpinfo().
7. Важный совет для начинающих
Не редактируйте файлы в /usr/lib/php/ — это шаблоны. Рабочие конфиги всегда в /etc/php/. И помните: для CLI и веба могут быть разные настройки. Если вы меняете параметры для веб-приложения — править нужно apache2/php.ini или fpm/php.ini, а не cli/php.ini.
Надеюсь, теперь стало понятнее. Удачи в разработке!
<<Альтернативный подход: использование командной строки
Если вам нужно быстро найти все файлы php.ini в системе, используйте:
sudo find / -name "php.ini" 2>/dev/null
Или, если установлен locate, обновите базу и выполните поиск:
sudo updatedb
locate php.ini
Проверка версии PHP и загруженных модулей
Иногда проблема в том, что установлено несколько версий PHP. Проверьте:
php -v
php -m
Если вы используете веб-сервер, убедитесь, что модуль PHP подключен:
sudo a2enmod php8.2 # для Apache
sudo systemctl restart apache2
Совет для Docker-контейнеров
Если вы работаете в Docker, php.ini может находиться в /usr/local/etc/php/. Создайте свой файл через Dockerfile:
FROM php:8.2-apache
COPY php.ini /usr/local/etc/php/
Главное — всегда проверяйте актуальный путь через phpinfo() или php -i, так как расположение зависит от системы и способа установки.