Miklix

Cara Menyiapkan Pool PHP-FPM Terpisah di NGINX

Diterbitkan: 15 Februari 2025 pukul 11.52.31 UTC

Dalam artikel ini, saya membahas langkah-langkah konfigurasi yang diperlukan untuk menjalankan beberapa kumpulan PHP-FPM dan menghubungkan NGINX ke kumpulan tersebut melalui FastCGI, yang memungkinkan pemisahan dan isolasi proses antara host virtual.


Halaman ini diterjemahkan oleh mesin dari bahasa Inggris agar dapat diakses oleh sebanyak mungkin orang. Sayangnya, terjemahan mesin belum merupakan teknologi yang sempurna, sehingga kesalahan dapat terjadi. Jika Anda mau, Anda dapat melihat versi bahasa Inggris aslinya di sini:

How to Set Up Separate PHP-FPM Pools in NGINX

Informasi dalam postingan ini berdasarkan NGINX 1.4.6 dan PHP-FPM 5.5.9 yang berjalan pada Ubuntu Server 14.04 x64. Informasi ini mungkin berlaku atau tidak berlaku untuk versi lain. (Pembaruan: Saya dapat mengonfirmasi bahwa mulai dari Ubuntu Server 24.04, PHP-FPM 8.3 dan NGINX 1.24.0, semua petunjuk dalam postingan ini masih berfungsi)

Ada sejumlah keuntungan dalam menyiapkan beberapa kumpulan proses anak PHP-FPM daripada menjalankan semuanya dalam satu kumpulan. Keamanan, pemisahan/isolasi, dan manajemen sumber daya muncul dalam pikiran sebagai beberapa hal utama.

Apa pun motivasi Anda, postingan ini akan membantu Anda melakukannya :-)


Bagian 1 – Siapkan pool PHP-FPM baru

Pertama, Anda perlu mencari direktori tempat PHP-FPM menyimpan konfigurasi pool-nya. Pada Ubuntu 14.04, direktori ini adalah /etc/php5/fpm/pool.d secara default. Mungkin sudah ada berkas di sana yang bernama www.conf , yang menyimpan konfigurasi untuk pool default. Jika Anda belum melihat berkas itu sebelumnya, kemungkinan besar Anda harus menelusurinya dan mengubah pengaturan di dalamnya untuk pengaturan Anda karena pengaturan default ditujukan untuk server yang cukup kurang bertenaga, tetapi untuk saat ini buat saja salinannya sehingga kita tidak perlu memulai dari awal:

sudo cp www.conf mypool.conf

Tentu saja, ganti “mypool” dengan nama apa pun yang Anda inginkan untuk kolam renang Anda.

Sekarang buka berkas baru menggunakan nano atau penyunting teks apa pun yang Anda sukai dan sesuaikan dengan tujuan Anda. Anda mungkin ingin mengubah nomor proses anak dan mungkin pengguna dan grup mana yang menjalankan kumpulan tersebut, tetapi dua pengaturan yang mutlak harus Anda ubah adalah nama kumpulan dan soket yang didengarkannya, jika tidak, kumpulan tersebut akan bentrok dengan kumpulan yang ada dan semuanya akan berhenti berfungsi.

Nama pool berada di dekat bagian atas berkas, diapit tanda kurung siku. Secara default, namanya adalah [www] . Ubah ini menjadi apa pun yang Anda inginkan; Saya sarankan sama seperti Anda memberi nama berkas konfigurasi, jadi untuk contoh ini, ubahlah menjadi [mypool] . Jika Anda tidak mengubahnya, tampaknya PHP-FPM hanya akan memuat berkas konfigurasi pertama dengan nama itu, yang kemungkinan akan merusak banyak hal.

Anda kemudian perlu mengubah soket atau alamat yang Anda dengarkan, yang ditentukan oleh perintah listen . Secara default, PHP-FPM menggunakan soket Unix sehingga perintah listen Anda mungkin akan terlihat seperti ini:

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

Anda dapat mengubahnya ke nama apa pun yang valid yang Anda inginkan, tetapi sekali lagi, saya sarankan untuk tetap menggunakan nama yang mirip dengan nama berkas konfigurasi, jadi misalnya Anda dapat mengaturnya menjadi:

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

Baiklah, simpan berkas dan keluar dari editor teks.


Bagian 2 – Memperbarui konfigurasi host virtual NGINX

Sekarang Anda perlu membuka file host virtual NGINX dengan konfigurasi FastCGI yang ingin Anda ubah ke kumpulan baru – atau lebih tepatnya, sambungkan ke soket baru.

Secara default pada Ubuntu 14.04, konfigurasi ini disimpan di bawah /etc/nginx/sites-available, tetapi juga dapat didefinisikan di tempat lain. Sebaiknya Anda mengetahui di mana konfigurasi host virtual Anda berada ;-)

Buka berkas konfigurasi yang relevan di editor teks favorit Anda dan cari perintah fastcgi_pass (yang harus berada dalam konteks lokasi) yang mendefinisikan soket PHP-FPM. Anda harus mengubah nilai ini agar sesuai dengan konfigurasi kumpulan PHP-FPM baru yang Anda buat pada langkah pertama, jadi dengan melanjutkan contoh kita, Anda akan mengubahnya menjadi:

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

Kemudian simpan dan tutup berkas itu juga. Sekarang Anda hampir selesai.


Bagian 3 – Restart PHP-FPM dan NGINX

Untuk menerapkan perubahan konfigurasi yang telah Anda buat, mulai ulang PHP-FPM dan NGINX. Mungkin cukup dengan melakukan reload alih-alih restart , tetapi menurut saya hasilnya kadang-kadang tidak konsisten, tergantung pada pengaturan mana yang diubah. Dalam kasus tertentu, saya ingin proses turunan PHP-FPM lama segera mati, jadi perlu memulai ulang PHP-FPM, tetapi untuk NGINX, reload mungkin sudah cukup. Cobalah sendiri.

sudo service php5-fpm restart
sudo service nginx restart

Dan voila, Anda sudah selesai. Jika Anda melakukan semuanya dengan benar, host virtual yang Anda modifikasi sekarang seharusnya menggunakan kumpulan PHP-FPM baru dan tidak berbagi proses anak dengan host virtual lainnya.

Bagikan di BlueskyBagikan di FacebookBagikan di LinkedInBagikan di TumblrBagikan di XBagikan di LinkedInPin di Pinterest

Mikkel Bang Christensen

Tentang Penulis

Mikkel Bang Christensen
Mikkel adalah pencipta dan pemilik miklix.com. Dia memiliki lebih dari 20 tahun pengalaman sebagai pemrogram komputer profesional/pengembang perangkat lunak dan saat ini bekerja penuh waktu di sebuah perusahaan IT besar di Eropa. Ketika tidak menulis blog, ia menghabiskan waktu luangnya untuk beragam minat, hobi, dan kegiatan, yang mungkin sampai batas tertentu tercermin dalam berbagai topik yang dibahas di situs web ini.