Avatar ·

Где находится файл php.ini и как его найти на Linux?

Всем привет! Я начинающий PHP-разработчик, перешел на Linux (Ubuntu) и столкнулся с проблемой. Мне нужно изменить некоторые настройки PHP, например, увеличить максимальный размер загружаемого файла. В Windows я просто лез в папку с PHP и правил php.ini, но тут я совсем запутался. Я установил PHP через apt: ```bash sudo apt install php ``` Теперь пытаюсь найти php.ini, но его нет ни в /etc/php/, ни в /usr/lib/php/. Команда `locate php.ini` ничего не выдает. Я слышал, что может быть несколько php.ini для разных версий PHP или для CLI и Apache. Как понять, какой из них править? Или может быть файл вообще не создается при установке? Я пробовал создать свой php.ini в корне проекта, но это не сработало — изменения не применяются. Подскажите, пожалуйста, где искать этот файл и как убедиться, что я правлю правильный? Пример кода, который я хочу протестировать: ```php ``` В выводе я вижу строку "Loaded Configuration File" — она пустая. Что это значит? Может быть, нужно создать файл вручную? Заранее спасибо за помощь! <<>>

Как найти и использовать 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, так как расположение зависит от системы и способа установки.