linux Много файлов php.ini -- почему так. Какой за что отвечает

Из вопроса:

выполнив в терминале команду locate php.ini я получил ссылку сразу на 5 файлов с таким именем:
/etc/php/7.1/apache2/php.ini
/etc/php/7.1/cli/php.ini
/usr/lib/php/7.1/apache2/php.ini-development
/usr/lib/php/7.1/apache2/php.ini-production
/usr/lib/php/7.1/apache2/php.ini-production.cli

Назначение файлов:

  • /etc/php/7.1/apache2/php.ini -- для режима "php как модуль апач" (да, он вам и нужен)
  • /etc/php/7.1/cli/php.ini --(cli - command line interface), т.е. именно этот кофиг отвечает за режим работы данного интерпретатора php при обращении из консоли.
  • /usr/lib/php/7.1/apache2/php.ini-development
    /usr/lib/php/7.1/apache2/php.ini-production
    /usr/lib/php/7.1/apache2/php.ini-production.cli

    -- как можно понять из имён (ведь используется на деле только имя php.ini), это "образцы" конфигов для командной строки (php.ini-production.cli), а также для прод. режима (напр. там скорее всего будет выключено отображение ошибок) и для машины разработчика (где не надо особо думать о безопасности).

    Эти файлы не влияют на работу сами по себе, подразумевается, что какой-то из них (по ситуации) надо переименовать в php.ini и положить нужную папку (например /etc/php/7.1/apache2/)

  • Если бы у вас был включен модуль fpm для поддержки одноименного SAPI, то у вас было бы ещё больше php.ini файлов, т.к. эта служба использует отдельный конфиг (один и тот же интерпретатор может использоваться как службой типа fpm так и модулем веб-сервера. Ведь по сути и fpm и модуль сервера Апач -- это, помимо прочего, модули ядра интерпретатора, позволяющие ядру взаимодействовать с веб-сервером через то или иное SAPI)

Key Words for FKN + antitotal forum (CS VSU):