Kolejność wczytywania plików php.ini
Napisał Aiv w kategorii Administracja, PHP, tags: php.iniChciałem sprawdzić czy można użyć kilku plików php.ini zakładając, że każdy kolejny plik nadpisuje ustawienia z plików poprzednich. Testowałem PHP w wersji 4.4.7 i 5.2.5 skompilowane jako CGI ze wsparciem dla FastCGI. Podczas konfiguracji użyłem między innymi parametrów:
--sysconfdir=/etc/php5/cgi --prefix=/usr/local/php5 --enable-fastcgi
Po krótkim debugowaniu aplikacji okazało się w jakiej kolejności PHP poszukuje plików ini:
./php-cgi-fcgi.ini /usr/local/php5/bin/php-cgi-fcgi.ini /etc/php5/cgi/php-cgi-fcgi.ini ./php.ini /usr/local/php5/bin/php.ini /etc/php5/cgi/php.ini
Wyżej wymieniona kolejność jest taka sama dla PHP uruchamianego z poziomu FastCGI/CGI. W przypadku pominięcia parametru --enable-fastcgi zmianie ulega nazwa pliku php-cgi-fcgi.ini na php-cgi.ini.
W przypadku PHP uruchomionego jako moduł Apache sprawa ma się trochę inaczej:
./php-apache.ini /etc/php5/apache/php-apache.ini ./php.ini /etc/php5/apache/php.ini
(PHP było skompilowane z opcją --sysconfdir=/etc/php5/apache.)
Niestety testy które przeprowadziłem wykazały, że PHP po znalezieniu pierwszego pliku ini pomija dalsze lokalizacje. Planowałem na podstawie tego mechanizmu dać użytkownikom możliwość posiadania własnego pliku php.ini z gwarancją, iż niektóre parametry były by zawsze globalnie nadpisywane (np: open_basedir, czy disable_functions).
Wpisy (RSS)