Ganti nilai konfigurasi pool php-fpm dengan file lain

12

Harus menyesuaikan konfigurasi php-fpm pool dari server baru, saya bertanya-tanya apakah mungkin / diizinkan / direkomendasikan untuk memiliki file pool baru, yang namanya sesuai abjad setelah yang asli, yang hanya memiliki nilai yang menimpa konfigurasi awal.

Konfigurasi asli dalam /etc/php/7.0/fpm/pool.dnama www.conf.

Tampaknya, menurut halaman yang terkait dengan instalasi, insinyur memodifikasi langsung yang asli (menyimpan salinan dari nilai awal). Misalnya

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

memberi setelah modifikasi

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

Tapi sepertinya itu bisa menjadi tugas yang harus diulang setelah pemutakhiran php-fpm berikutnya (lebih jauh konfigurasi ada di 7.0jalur, itu mengkhawatirkan).

Alih-alih memodifikasi file asli, saya ingin tetap tidak berubah, dan menambahkan yang lain, mengatakan wwwmyapp.confbahwa akan mendeklarasikan kumpulan yang sama, dan hanya memiliki nilai yang telah berubah

di wwwmyapp.conf

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

dalam pool.d, daftar file

www.conf
wwwmyapp.conf

karena di php-fpm.confsemua file pool conf dimuat, nilai-nilai wwwmyappakan dibaca setelah yang www(dalam wwwpool yang sama ) dan harus menimpa nilai pertama.

  • Tampaknya berfungsi dalam beberapa tes dan tidak ada kesalahan yang dilaporkan, tetapi apakah itu akan bekerja setiap saat, dan untuk semua nilai?
  • Haruskah kita menimpa file konfigurasi secara langsung?

Tidak dapat menemukan jawaban di dokumen mana pun, bahkan di php.net.

Dering Ø
sumber
Setidaknya dalam distribusi berbasis Debian / Ubuntu, proses peningkatan menanyakan apakah harus menyimpan file konfigurasi lama atau menginstal yang ditingkatkan dari paket. Ini akan menginstal file konfigurasi baru dengan akhiran sehingga orang dapat memeriksa perubahan seperti itu. Saya menganggap manajer paket lain memiliki fitur serupa. Karena itu saya pikir ini masalah pendapat. Namun, memiliki terlalu banyak definisi dengan nama yang sama sepertinya tidak akan berhasil di masa depan juga.
Tero Kilkanen

Jawaban:

15

Tidak dapat menemukan konfirmasi "resmi" dari sumber lain, tetapi berikut adalah beberapa hasil setelah melakukan riset:

Menganalisis kode sumber php7.0-fpmdan lebih khusus lagi fpm-conf.c, tampaknya itu

  • file konfigurasi utama php-fpm.confdibaca terlebih dahulu [ fpm_conf_load_ini_file ()],
  • semua includearahan dibaca secara berurutan, memberikan daftar file berkat glob () ,
  • setiap file diurai oleh fpm_conf_load_ini_file () yang sama,
  • entri dalam file menimpa nilai yang ditetapkan sebelumnya,
  • setiap yang baru includeakan memiliki panggilan rekursif ke fungsi pemrosesan yang disertakan, dan
  • fungsi glob () mengurutkan nama, secara default (tanpa GLOB_NOSORTopsi)

Dengan demikian kita dapat mengasumsikan - setidaknya dalam versi ini tetapi ini tidak mungkin untuk segera berubah mengingat kode ini - bahwa aman untuk mengatur pool.dfile konfigurasi direktori dalam urutan abjad; nilai yang tercatat sebelumnya ditimpa oleh entri dengan nama yang sama dibaca setelahnya.

Kami memiliki cara bersih untuk menangani file konfigurasi php-fpm, menjaga distribusi yang tidak tersentuh, dan menambahkan file kustom yang memiliki nama secara alfabet lebih besar daripada yang dikemas, yang berisi beberapa opsi yang harus diubah.

Dering Ø
sumber
+1 untuk tidak mengubah konfigurasi default. Saya selalu memiliki masalah ketika saya menggunakannya untuk lingkungan produksi karena akan dikembalikan ke default saat meningkatkan.
Federico Galli
global FPM override di bawah pool.d adalah possigbe menggunakan [global]bagian. mis emergency_restart_threshold. Diuji pada php7.1-fpm ubuntu (server 18).
hrvoj3e
Juga, karena nama pool standar adalah wwwsatu-satunya cara untuk mengesampingkan menggunakan pool.d nama file seperti wwwsomethingatau dimulai dengan x, yatau z.
hrvoj3e
Terima kasih! Saya telah memberi nama file saya z-www-overrides.confdan [www]opsi kolam terlarang !
IStranger
2

Jika Anda memiliki beberapa file seperti php-overrides.ini Anda harus menyalinnya

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

99 awalan adalah karena urutan eksekusi

WhipsterCZ
sumber
conf.doverride tidak dapat mengesampingkan php-fpm.confvariabel (hanya di pool.d/bawah [global]) (catatan untuk masa depan sendiri)
hrvoj3e