Назад | Перейти на главную страницу

Откуда /etc/php/7.0/apache2/php.ini в Ubuntu 16.04?

Откуда в Ubuntu 16.04 берется файл /etc/php/7.0/apache2/php.ini?

dpkg -S /etc/php/7.0/apache2/php.ini

ничего не возвращает.

dpkg -S /etc/php/7.0/apache2/

показывает, что каталог установлен пакетом libapache2-mod-php7.0, но

dpkg-query -L libapache2-mod-php7.0

не упоминает "php.ini". Я предполагаю, что этот файл копируется во время процесса после установки. Есть ли способ определить, при какой установке пакета создается этот файл?

Когда вы часто ищете, как что-то попало в вашу систему, вы можете просто попробовать такую ​​команду grep 'php.ini' /var/lib/dpkg/info/*. В /var/lib/dpkg/info/ содержит файлы, относящиеся к пакетам, которые включают packagename.list который используется dpkg -S, packagename.conffiles который представляет собой список конфигураций и файлов для различных сценариев до / после установки / удаления, таких как packagename.actionname.

# grep 'php.ini' /var/lib/dpkg/info/*

/var/lib/dpkg/info/libapache2-mod-php7.0.postinst:    phpini="/etc/php/7.0/apache2/php.ini"
/var/lib/dpkg/info/libapache2-mod-php7.0.postinst:  ucf /usr/lib/php/7.0/php.ini-production.apache2 $phpini
/var/lib/dpkg/info/libapache2-mod-php7.0.postinst:  ucf /usr/lib/php/7.0/php.ini-production $phpini
/var/lib/dpkg/info/libapache2-mod-php7.0.postrm:    phpini=/etc/php/7.0/apache2/php.ini
/var/lib/dpkg/info/php7.0-cli.postinst:    phpini="/etc/php/7.0/cli/php.ini"
...

# cat /var/lib/dpkg/info/libapache2-mod-php7.0.postinst
...
if [ "$1" = "configure" ]; then
    phpini="/etc/php/7.0/apache2/php.ini"

    if [ "apache2" = "cli" ]; then
    ucf /usr/lib/php/7.0/php.ini-production.apache2 $phpini
    else
    ucf /usr/lib/php/7.0/php.ini-production $phpini
    fi
    ucfr libapache2-mod-php7.0 $phpini
...

В любом случае для этого конкретного запроса мы видим, что php.ini добавляется через UCF из /usr/lib/php/7.0/php.ini-production. UCF - один из немногих инструментов, которые могут использоваться пакетами Debian для поддержки файлов конфигурации. UCF может принимать некоторые значения от пользователей для объединения, он может обнаруживать и автоматически обновлять или объединять конфигурации в некоторых ситуациях и т. Д.