Where does the /etc/php/7.0/apache2/php.ini file come from on Ubuntu 16.04?
dpkg -S /etc/php/7.0/apache2/php.ini
returns nothing.
dpkg -S /etc/php/7.0/apache2/
shows that the directory is installed by the libapache2-mod-php7.0 package, but
dpkg-query -L libapache2-mod-php7.0
does not mention "php.ini". I'm guessing that this file is copied during a postinstall process. Is there a way to determine which package installation is creating this file?
Когда вы часто ищете, как что-то попало в вашу систему, вы можете просто попробовать такую команду 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 может принимать некоторые значения от пользователей для объединения, он может обнаруживать и автоматически обновлять или объединять конфигурации в некоторых ситуациях и т. Д.