Miklix

Cara Sediakan Kolam PHP-FPM Berasingan dalam NGINX

Diterbitkan: 19 Mac 2025 pada 9:26:58 PTG UTC
Kemas kini terakhir: 12 Januari 2026 pada 8:30:29 PG 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 pada 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 berbilang kumpulan proses anak PHP-FPM daripada menjalankan semuanya dalam kumpulan yang sama. Keselamatan, pemisahan/pengasingan dan pengurusan sumber terlintas di fikiran sebagai beberapa kelebihan utama.

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

Bahagian 1 – Sediakan kolam PHP-FPM baharu

Pertama, anda perlu mencari direktori tempat 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 menyimpan konfigurasi untuk kolam lalai. Jika anda belum pernah melihat fail itu sebelum ini, kemungkinan besar anda harus menyemaknya dan mengubah suai tetapan di dalamnya untuk persediaan anda kerana tetapan lalai adalah untuk pelayan yang agak lemah, tetapi buat sahaja salinannya supaya kita tidak perlu bermula dari awal:

sudo cp www.conf mypool.conf

Sudah tentu, gantikan "mypool" dengan apa sahaja yang anda mahu namakan kolam anda.

Sekarang buka fail baharu menggunakan nano atau mana-mana editor teks yang anda suka dan laraskannya agar sesuai dengan tujuan anda. Anda mungkin mahu mengubah suai nombor proses anak dan mungkin pengguna dan kumpulan yang menjalankan kolam renang, tetapi dua tetapan yang mesti anda ubah ialah nama kolam renang dan soket yang didengarinya, jika tidak, ia akan bercanggah dengan kolam renang sedia ada dan semuanya akan berhenti berfungsi.

Nama kolam renang berada berhampiran bahagian atas fail, dilekatkan dalam kurungan segi empat sama. Secara lalainya ialah [www]. Tukar ini kepada apa sahaja yang anda mahu; saya cadangkan sama seperti anda menamakan fail konfigurasi, jadi demi contoh ini tukarkannya kepada [mypool]. Jika anda tidak mengubahnya, nampaknya PHP-FPM hanya akan memuatkan fail konfigurasi pertama dengan nama itu, yang berkemungkinan akan merosakkan sesuatu.

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

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

Anda boleh mengubahnya kepada nama sah yang anda mahukan, tetapi sekali lagi, saya cadangkan kekal dengan sesuatu yang serupa dengan nama fail konfigurasi, jadi anda boleh menetapkannya kepada:

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

Baiklah kemudian, simpan fail tersebut dan keluar dari editor teks.

Bahagian 2 – Kemas kini konfigurasi hos maya NGINX

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

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

Buka fail konfigurasi yang berkaitan dalam editor 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 kumpulan PHP-FPM baharu yang anda buat di bawah langkah satu, jadi meneruskan contoh kita, anda akan menukarnya kepada:

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

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

Bahagian 3 – Mulakan Semula PHP-FPM dan NGINX

Untuk menggunakan perubahan konfigurasi yang telah anda buat, mulakan semula PHP-FPM dan NGINX. Ia mungkin mencukupi untuk memuatkan semula dan bukannya memulakan semula, tetapi saya dapati ia agak sukar, bergantung pada tetapan yang diubah. Dalam kes tertentu, saya mahu proses anak PHP-FPM lama mati serta-merta, jadi memulakan semula PHP-FPM diperlukan, tetapi untuk NGINX muat semula mungkin mencukupi. Cubalah sendiri.

sudo service php5-fpm restart
sudo service nginx restart

Dan voila, anda sudah selesai. Jika anda melakukan semuanya dengan betul, hos maya yang anda ubah suai kini sepatutnya menggunakan kolam PHP-FPM baharu dan tidak berkongsi proses anak dengan mana-mana hos maya yang 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.