Musząc dostosować konfigurację puli php-fpm nowego serwera, zastanawiam się, czy jest możliwe / dozwolone / zalecane posiadanie nowego pliku puli, którego nazwa idzie alfabetycznie po oryginalnym, który ma tylko wartości zastępujące początkową konfigurację.
Oryginalna konfiguracja ma /etc/php/7.0/fpm/pool.d
nazwę www.conf
.
Wydaje się, że zgodnie ze stronami związanymi z instalacją inżynierowie modyfikują bezpośrednio oryginał (zapisując kopię wartości początkowych). Na przykład
[www]
...
user www-data
group www-data
pm.max_children 2
daje po modyfikacji
[www]
...
user myapp ; was www-data
group myapp ; was www-data
pm.max_children 8 ; was 2
Wygląda jednak na to, że zadanie może być powtórzone po kolejnej aktualizacji php-fpm (co więcej, konfiguracja jest na dobrej 7.0
drodze, to niepokojące).
Zamiast modyfikować oryginalny plik, chciałbym zachować go bez zmian i dodać kolejny, powiedzmy wwwmyapp.conf
, że zadeklaruje tę samą pulę i mając tylko te wartości, które uległy zmianie
w wwwmyapp.conf
[www] ; same pool!
user myapp
group myapp
pm.max_children 8
w pool.d
, lista plików
www.conf
wwwmyapp.conf
ponieważ we php-fpm.conf
wszystkich plikach conf puli są ładowane, wartości wwwmyapp
zostaną odczytane po wartościach z www
(w tej samej www
puli) i powinny zastąpić pierwsze wartości.
- Wygląda na to, że działa w kilku testach i nie zgłoszono błędu, ale czy będzie działał przez cały czas i dla wszystkich wartości?
- Czy zamiast tego powinniśmy zastąpić plik konfiguracyjny bezpośrednio?
Nie można znaleźć odpowiedzi w żadnym dokumencie, nawet na php.net.
źródło
Odpowiedzi:
Nie można znaleźć „oficjalnego” potwierdzenia z innego źródła, ale oto wyniki po przeprowadzeniu badań:
Analizując kod źródłowy,
php7.0-fpm
a dokładniejfpm-conf.c
, wydaje się, żephp-fpm.conf
jest najpierw czytany [ fpm_conf_load_ini_file ()],include
dyrektywy są odczytywane w kolejności, dając listę plików dzięki glob () ,include
będą miały rekurencyjne wywołanie funkcji przetwarzania, a takżeGLOB_NOSORT
opcji)Możemy zatem założyć - przynajmniej w tej wersji, ale prawdopodobnie nie zmieni się to szybko, biorąc pod uwagę obecny kod - że bezpiecznie jest uporządkować
pool.d
pliki konfiguracji katalogów w kolejności alfabetycznej; wszelkie wcześniej zarejestrowane wartości zostaną zastąpione wpisem o tej samej nazwie, odczytanym po.Mamy czysty sposób na obsługę plików konfiguracyjnych
php-fpm
, utrzymywanie nietkniętych plików dystrybucyjnych i dodawanie niestandardowych plików o alfabetycznie większej nazwie niż w pakietach, które zawierają kilka opcji, które należy zmienić.źródło
[global]
sekcji. npemergency_restart_threshold
. Testowane na Ubuntu php7.1-fpm (serwer 18).www
jedynym sposobem na przesłonięcie przy użyciu pool.d nazw plików takich jakwwwsomething
lub zaczynających sięx
,y
lubz
.z-www-overrides.conf
Nazwałem mój plik i zastąpił on[www]
opcje puli!Jeśli masz jakiś plik, taki jak php-overrides.ini, powinieneś go skopiować
/etc/php/7.0/fpm/conf.d/99-overrides.ini
99 prefiks wynika z kolejności wykonania
źródło
conf.d
przesłonięcia nie mogą przesłonićphp-fpm.conf
zmiennych (tylkopool.d/
poniżej[global]
) (uwaga dla przyszłego ja)