Miklix

Cara Sediakan Kolam PHP-FPM Berasingan dalam NGINX

Diterbitkan: 19 Mac 2025 pada 9:26:58 PTG UTC

Dalam artikel ini, saya membincangkan langkah konfigurasi yang diperlukan untuk menjalankan berbilang kumpulan PHP-FPM dan menyambung NGINX kepada mereka melalui FastCGI, membenarkan pemisahan dan pengasingan proses antara hos maya.


Halaman ini telah diterjemahkan mesin daripada bahasa Inggeris untuk menjadikannya boleh diakses oleh seramai mungkin orang. Malangnya, terjemahan mesin belum lagi merupakan teknologi yang sempurna, jadi ralat boleh berlaku. Jika anda mahu, anda boleh melihat versi bahasa Inggeris asal di sini:

How to Set Up Separate PHP-FPM Pools in NGINX

Maklumat dalam catatan ini adalah berdasarkan NGINX 1.4.6 dan PHP-FPM 5.5.9 yang berjalan di Ubuntu Server 14.04 x64. Ia mungkin sah atau tidak untuk versi lain. (Kemas kini: Saya boleh mengesahkan bahawa setakat Ubuntu Server 24.04, PHP-FPM 8.3 dan NGINX 1.24.0, semua arahan dalam catatan ini masih berfungsi)

Terdapat beberapa kelebihan untuk menyediakan beberapa kolam proses anak PHP-FPM daripada menjalankan semuanya dalam kolam yang sama. Keselamatan, pemisahan/penyendirian dan pengurusan sumber terlintas di fikiran sebagai beberapa perkara utama.

Tidak kira apa motivasi anda, catatan ini akan membantu anda melakukannya :-)


Bahagian 1 – Sediakan kolam PHP-FPM baharu

Pertama, anda perlu mencari direktori di mana PHP-FPM menyimpan konfigurasi kolamnya. Pada Ubuntu 14.04, ini adalah /etc/php5/fpm/pool.d secara lalai. Mungkin sudah ada fail di sana yang dipanggil www.conf, yang mengandungi konfigurasi untuk kolam lalai. Jika anda belum melihat fail itu sebelum ini, mungkin anda harus menyemaknya dan mengubah tetapan di dalamnya untuk persediaan anda kerana tetapan lalai adalah untuk pelayan yang agak kurang berkuasa, tetapi untuk sekarang buat salinan fail itu supaya kita tidak perlu mula dari awal:

sudo cp www.conf mypool.conf

Sudah tentu, ganti “mypool” dengan nama kolam yang anda inginkan.

Sekarang buka fail baharu itu menggunakan nano atau mana-mana penyunting teks yang anda pilih dan sesuaikan ia mengikut tujuan anda. Anda mungkin ingin mengubah nombor proses anak dan mungkin juga pengguna dan kumpulan di bawah mana kolam dijalankan, tetapi dua tetapan yang mesti anda ubah adalah nama kolam dan soket yang ia dengar, jika tidak, ia akan bertentangan dengan kolam yang ada dan perkara-perkara tidak akan berfungsi.

Nama kolam terletak berhampiran bahagian atas fail, dalam tanda kurung kotak. Secara lalai ia adalah [www]. Tukar ini kepada apa sahaja yang anda mahu; saya cadangkan sama seperti nama fail konfigurasi, jadi untuk contoh ini tukar kepada [mypool]. Jika anda tidak mengubahnya, nampaknya PHP-FPM hanya akan memuatkan fail konfigurasi pertama dengan nama itu, yang kemungkinan akan merosakkan sesuatu.

Anda kemudian perlu menukar soket atau alamat yang anda dengar, yang ditakrifkan oleh arahan listen. Secara lalai, PHP-FPM menggunakan soket Unix jadi arahan listen anda mungkin kelihatan seperti ini:

listen = /var/run/php5-fpm.sock

Anda boleh menukarnya kepada nama sah yang anda mahu, tetapi sekali lagi, saya cadangkan untuk kekal dengan sesuatu yang serupa dengan nama fail konfigurasi, jadi anda boleh contohnya menukarnya kepada:

listen = /var/run/php5-fpm-mypool.sock

Baiklah, simpan fail tersebut dan keluar dari penyunting teks.


Bahagian 2 – Kemas kini konfigurasi hos maya NGINX

Sekarang anda perlu membuka fail hos maya NGINX dengan konfigurasi FastCGI yang anda ingin ubah kepada kolam baharu – atau lebih tepatnya, sambungkan ke soket baharu.

Secara lalai di Ubuntu 14.04, ini disimpan di bawah /etc/nginx/sites-available, tetapi boleh juga ditakrifkan di tempat lain. Anda mungkin tahu dengan lebih baik di mana konfigurasi hos maya anda disimpan ;-)

Buka fail konfigurasi yang relevan dalam penyunting teks kegemaran anda dan cari arahan fastcgi_pass (yang mesti berada dalam konteks lokasi) yang mentakrifkan soket PHP-FPM. Anda mesti menukar nilai ini supaya ia sepadan dengan konfigurasi kolam PHP-FPM baharu yang anda buat di langkah pertama, jadi meneruskan contoh kita, anda akan menukar ini kepada:

fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;

Kemudian simpan dan tutup fail tersebut juga. Anda hampir selesai sekarang.


Bahagian 3 – Mulakan semula PHP-FPM dan NGINX

Untuk menerapkan perubahan konfigurasi yang telah anda buat, mulakan semula PHP-FPM dan NGINX. Ia mungkin cukup untuk memuat semula daripada memulakan semula, tetapi saya mendapati ia agak tidak menentu, bergantung pada tetapan mana yang diubah. Dalam kes tertentu ini, saya ingin proses anak PHP-FPM lama mati dengan segera, jadi memulakan semula PHP-FPM diperlukan, tetapi untuk NGINX, memuat semula mungkin mencukupi. Cuba sendiri.

sudo service php5-fpm restart
sudo service nginx restart

Dan voila, anda sudah selesai. Jika anda melakukan segala-galanya dengan betul, hos maya yang anda ubah kini sepatutnya menggunakan kolam PHP-FPM yang baharu dan tidak berkongsi proses anak dengan mana-mana hos maya lain.

Kongsi di BlueskyKongsi di FacebookKongsi di LinkedInKongsi di TumblrKongsi di XKongsi di LinkedInSematkan pada Pinterest

Mikkel Christensen

Mengenai Pengarang

Mikkel Christensen
Mikkel ialah pencipta dan pemilik miklix.com. Beliau mempunyai lebih 20 tahun pengalaman sebagai pengaturcara komputer/pembangun perisian profesional dan kini bekerja sepenuh masa untuk sebuah syarikat IT Eropah yang besar. Apabila tidak menulis blog, dia menghabiskan masa lapangnya dengan pelbagai minat, hobi dan aktiviti, yang mungkin sedikit sebanyak dapat dilihat dalam pelbagai topik yang diliputi di laman web ini.