Πώς να ρυθμίσετε ξεχωριστές ομάδες PHP-FPM στο NGINX
Δημοσιεύθηκε: 15 Φεβρουαρίου 2025 στις 11:49:27 π.μ. UTC
Τελευταία ενημέρωση: 12 Ιανουαρίου 2026 στις 8:29:55 π.μ. UTC
Σε αυτό το άρθρο, εξετάζω τα βήματα διαμόρφωσης που απαιτούνται για την εκτέλεση πολλαπλών ομάδων PHP-FPM και τη σύνδεση του NGINX σε αυτές μέσω FastCGI, επιτρέποντας τον διαχωρισμό και την απομόνωση διεργασιών μεταξύ εικονικών κεντρικών υπολογιστών.
How to Set Up Separate PHP-FPM Pools in NGINX
Οι πληροφορίες σε αυτήν την ανάρτηση βασίζονται στα NGINX 1.4.6 και PHP-FPM 5.5.9 που εκτελούνται στον Ubuntu Server 14.04 x64. Μπορεί να ισχύουν ή όχι για άλλες εκδόσεις. (Ενημέρωση: Μπορώ να επιβεβαιώσω ότι από τις εκδόσεις Ubuntu Server 24.04, PHP-FPM 8.3 και NGINX 1.24.0, όλες οι οδηγίες σε αυτήν την ανάρτηση εξακολουθούν να λειτουργούν)
Υπάρχουν πολλά πλεονεκτήματα στη ρύθμιση πολλαπλών θυγατρικών διεργασιών PHP-FPM αντί να εκτελούνται όλες οι διεργασίες στην ίδια ομάδα. Η ασφάλεια, ο διαχωρισμός/απομόνωση και η διαχείριση πόρων έρχονται στο νου ως μερικά από τα σημαντικότερα πλεονεκτήματα.
Ανεξάρτητα από το κίνητρό σας, αυτή η ανάρτηση θα σας βοηθήσει να το κάνετε :-)
Μέρος 1 – Ρύθμιση μιας νέας ομάδας PHP-FPM
Αρχικά, πρέπει να εντοπίσετε τον κατάλογο όπου το PHP-FPM αποθηκεύει τις ρυθμίσεις της ομάδας του. Στο Ubuntu 14.04, αυτός είναι ο /etc/php5/fpm/pool.d από προεπιλογή. Πιθανότατα υπάρχει ήδη ένα αρχείο εκεί που ονομάζεται www.conf, το οποίο περιέχει τη ρύθμιση παραμέτρων για την προεπιλεγμένη ομάδα. Εάν δεν έχετε δει αυτό το αρχείο πριν, πιθανότατα θα πρέπει να το ελέγξετε και να τροποποιήσετε τις ρυθμίσεις για τη ρύθμισή σας, καθώς οι προεπιλογές είναι για έναν αρκετά αδύναμο διακομιστή, αλλά προς το παρόν απλώς δημιουργήστε ένα αντίγραφο αυτού, ώστε να μην χρειάζεται να ξεκινήσουμε από την αρχή:
Φυσικά, αντικαταστήστε το "mypool" με όποιο όνομα θέλετε να ονομάζεται η πισίνα σας.
Τώρα ανοίξτε το νέο αρχείο χρησιμοποιώντας το nano ή οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου προτιμάτε και προσαρμόστε το ώστε να ταιριάζει στον σκοπό σας. Πιθανότατα θα θελήσετε να τροποποιήσετε τους αριθμούς των θυγατρικών διεργασιών και πιθανώς τον χρήστη και την ομάδα υπό την οποία εκτελείται η ομάδα, αλλά οι δύο ρυθμίσεις που πρέπει οπωσδήποτε να αλλάξετε είναι το όνομα της ομάδας και η υποδοχή στην οποία ακούει, διαφορετικά θα έρχεται σε διένεξη με την υπάρχουσα ομάδα και τα πράγματα θα σταματήσουν να λειτουργούν.
Το όνομα της ομάδας βρίσκεται κοντά στην κορυφή του αρχείου, μέσα σε αγκύλες. Από προεπιλογή είναι [www]. Αλλάξτε το σε ό,τι θέλετε. Προτείνω να ονομάσετε το αρχείο ρυθμίσεων με το ίδιο όνομα, οπότε για χάρη αυτού του παραδείγματος, αλλάξτε το σε [mypool]. Εάν δεν το αλλάξετε, φαίνεται ότι το PHP-FPM θα φορτώσει μόνο το πρώτο αρχείο ρυθμίσεων με αυτό το όνομα, κάτι που είναι πιθανό να προκαλέσει προβλήματα.
Στη συνέχεια, πρέπει να αλλάξετε την υποδοχή ή τη διεύθυνση που ακούτε, η οποία ορίζεται από την οδηγία listen. Από προεπιλογή, το PHP-FPM χρησιμοποιεί υποδοχές Unix, επομένως η οδηγία listen πιθανότατα θα μοιάζει με αυτό:
Μπορείτε να το αλλάξετε σε οποιοδήποτε έγκυρο όνομα θέλετε, αλλά και πάλι, προτείνω να επιμείνετε σε κάτι παρόμοιο με το όνομα του αρχείου διαμόρφωσης, ώστε να μπορείτε για παράδειγμα να το ορίσετε ως εξής:
Εντάξει, τότε αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή κειμένου.
Μέρος 2 – Ενημέρωση διαμόρφωσης εικονικού κεντρικού υπολογιστή NGINX
Τώρα πρέπει να ανοίξετε το αρχείο εικονικού κεντρικού υπολογιστή NGINX με τη διαμόρφωση FastCGI που θέλετε να αλλάξετε σε μια νέα ομάδα - ή μάλλον, να συνδεθείτε στη νέα υποδοχή.
Από προεπιλογή στο Ubuntu 14.04, αυτά αποθηκεύονται στο /etc/nginx/sites-available, αλλά μπορούν επίσης να οριστούν και αλλού. Πιθανότατα γνωρίζετε καλύτερα πού βρίσκονται οι διαμορφώσεις του εικονικού κεντρικού υπολογιστή σας ;-)
Ανοίξτε το σχετικό αρχείο ρυθμίσεων στον αγαπημένο σας επεξεργαστή κειμένου και αναζητήστε την οδηγία fastcgi_pass (η οποία πρέπει να βρίσκεται σε ένα περιβάλλον τοποθεσίας) που ορίζει την υποδοχή PHP-FPM. Πρέπει να αλλάξετε αυτήν την τιμή έτσι ώστε να ταιριάζει με τη νέα ρύθμιση παραμέτρων της ομάδας PHP-FPM που κάνατε στο πρώτο βήμα, επομένως συνεχίζοντας το παράδειγμά μας, θα το αλλάξετε σε:
Fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;
Στη συνέχεια, αποθηκεύστε και κλείστε και αυτό το αρχείο. Σχεδόν τελειώσατε τώρα.
Μέρος 3 – Επανεκκίνηση PHP-FPM και NGINX
Για να εφαρμόσετε τις αλλαγές διαμόρφωσης που κάνατε, επανεκκινήστε τόσο το PHP-FPM όσο και το NGINX. Μπορεί να είναι αρκετή η επανεκκίνηση αντί για επανεκκίνηση, αλλά το βρίσκω λίγο δύσκολο, ανάλογα με τις ρυθμίσεις που έχουν αλλάξει. Στη συγκεκριμένη περίπτωση, ήθελα οι παλιές θυγατρικές διεργασίες PHP-FPM να τερματιστούν αμέσως, επομένως χρειάστηκε επανεκκίνηση του PHP-FPM, αλλά για το NGINX μια επανεκκίνηση μπορεί να είναι αρκετή. Δοκιμάστε το μόνοι σας.
sudo service nginx restart
Και ορίστε, τελειώσατε. Αν κάνατε τα πάντα σωστά, ο εικονικός κεντρικός υπολογιστής που τροποποιήσατε θα πρέπει τώρα να χρησιμοποιεί τη νέα ομάδα PHP-FPM και να μην μοιράζεται θυγατρικές διεργασίες με άλλους εικονικούς κεντρικούς υπολογιστές.
