Php-fpm havuz yapılandırma değerlerini başka bir dosya ile geçersiz kıl


12

Yeni bir sunucunun php-fpm havuz yapılandırmasını özelleştirmek zorunda kaldığımda, yalnızca ilk yapılandırmayı geçersiz kılan değerlere sahip orijinal addan sonra yeni bir havuz dosyasına sahip olmanın mümkün / izin verildiğini / önerildiğini merak ediyorum.

Orijinal yapılandırma /etc/php/7.0/fpm/pool.dadlandırılmıştır www.conf.

Kurulumla ilgili sayfalara göre, mühendisler orijinali doğrudan değiştirir (başlangıç ​​değerlerinin bir kopyasını kaydeder). Örneğin

[www]
...
user www-data
group www-data
pm.max_children 2

değişiklikten sonra verir

[www]
...
user myapp         ; was www-data
group myapp        ; was www-data
pm.max_children 8  ; was 2

Ancak php-fpm'nin bir sonraki yükseltmesinden sonra tekrarlanması gereken bir görev gibi görünebilir (ayrıca yapılandırma bir 7.0yoldadır, bu endişe vericidir).

Orijinal dosyayı değiştirmek yerine, değişmeden tutmak ve başka bir tane eklemek istiyorum wwwmyapp.conf, aynı havuzu ilan edecek ve sadece değişen değerlere sahip

içinde wwwmyapp.conf

[www]        ; same pool!
user myapp
group myapp
pm.max_children 8

içinde pool.d, dosya listesi

www.conf
wwwmyapp.conf

çünkü php-fpm.conftüm havuzlarda conf dosyaları yüklendiğinden, değerleri ( aynı havuzda) wwwmyappolanlardan sonra okunacak ve ilk değerleri geçersiz kılacaktır.wwwwww

  • Birkaç testte çalışıyor ve herhangi bir hata bildirilmedi, ancak her zaman ve tüm değerler için çalışacak mı?
  • Bunun yerine doğrudan yapılandırma dosyasının üzerine yazmalı mıyız?

Php.net adresinde bile herhangi bir dokümanda cevap bulunamadı.


En azından Debian / Ubuntu tabanlı dağıtımlarda, yükseltme işlemi eski yapılandırma dosyalarını tutup tutmayacağını veya yükseltilenleri paketten kurup kurmayacağını sorar. Değişikliklerin bu şekilde kontrol edilebilmesi için yeni yapılandırma dosyasını bir sonekle kuracaktır. Diğer paket yöneticilerinin de benzer bir özelliği olduğunu düşünüyorum. Bu yüzden bence bir görüş meselesi. Ancak, aynı ada sahip çok havuz tanımlarına sahip olmak, gelecekte de işe yarayacak gibi görünmüyor.
Tero Kilkanen

Yanıtlar:


15

Başka bir kaynaktan "resmi" bir onay bulunamadı, ancak biraz araştırma yaptıktan sonra bazı sonuçlar:

Kaynak kodunu analiz etmek php7.0-fpmve daha spesifik olarak fpm-conf.c,

  • önce ana yapılandırma dosyası php-fpm.confokunur [ fpm_conf_load_ini_file ()],
  • tüm includeyönergeler sırayla okunur, glob () sayesinde dosyaların bir listesini verir ,
  • dosyanın her biri aynı fpm_conf_load_ini_file () tarafından ayrıştırılır ,
  • dosyadaki bir girdi önceden ayarlanmış herhangi bir değerin üzerine yazar,
  • herhangi bir yeni include, içerme işleme işlevini özyinelemeli çağrıya sahip olacak ve
  • glob () fonksiyonu varsayılan olarak isimleri sıralar (hayır GLOB_NOSORTseçeneği)

Bu nedenle - en azından bu versiyonda, ancak bu, mevcut kodu dikkate alarak yakında değişmenin mümkün olmadığını varsayabiliriz - pool.ddizin yapılandırma dosyalarını alfabetik sırayla düzenlemenin güvenli olduğunu varsayabiliriz ; önceden kaydedilmiş olan herhangi bir değerin üzerine aynı adla okunan bir giriş tarafından yazılır.

php-fpmDağıtım dosyalarını el değmeden tutmak ve değiştirilmesi gereken birkaç seçeneği içeren paketlenmiş olanlardan alfabetik olarak daha büyük özel dosyalar eklemek için yapılandırma dosyalarını işlemek için temiz bir yolumuz var.


+1 varsayılan yapılandırmayı değiştirmediği için. Üretim ortamı için bunu kullandığımda her zaman sorun yaşıyorum çünkü yükseltme sırasında varsayılanlara geri dönüyor.
Federico Galli

pool.d altında global FPM geçersiz kılmaları [global]bölümü kullanıyor . örn emergency_restart_threshold. Php7.1-fpm ubuntu (sunucu 18) üzerinde test edildi.
hrvoj3e

Ayrıca, varsayılan havuz adı wwwgeçersiz kılmanın tek yolu olduğundan , veya . İle wwwsomethingbaşlayan veya ile başlayan pool.d dosya adları kullanmaktır . xyz
hrvoj3e

Teşekkürler! z-www-overrides.confDosyamı adlandırdım ve [www]havuz seçenekleri geçersiz kılındı !
IStranger

2

Eğer php-overrides.ini gibi bir dosyaya sahipseniz,

/etc/php/7.0/fpm/conf.d/99-overrides.ini

99 öneki, yürütme sırasından kaynaklanmaktadır


conf.dgeçersiz kılma geçersiz kılamaz php-fpm.conf(sadece değişkenleri pool.d/altındakiler [global]) (gelecek öz Notu)
hrvoj3e
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.