Miklix

Πώς να ρυθμίσετε ξεχωριστές ομάδες 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, το οποίο περιέχει τη ρύθμιση παραμέτρων για την προεπιλεγμένη ομάδα. Εάν δεν έχετε δει αυτό το αρχείο πριν, πιθανότατα θα πρέπει να το ελέγξετε και να τροποποιήσετε τις ρυθμίσεις για τη ρύθμισή σας, καθώς οι προεπιλογές είναι για έναν αρκετά αδύναμο διακομιστή, αλλά προς το παρόν απλώς δημιουργήστε ένα αντίγραφο αυτού, ώστε να μην χρειάζεται να ξεκινήσουμε από την αρχή:

sudo cp www.conf mypool.conf

Φυσικά, αντικαταστήστε το "mypool" με όποιο όνομα θέλετε να ονομάζεται η πισίνα σας.

Τώρα ανοίξτε το νέο αρχείο χρησιμοποιώντας το nano ή οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου προτιμάτε και προσαρμόστε το ώστε να ταιριάζει στον σκοπό σας. Πιθανότατα θα θελήσετε να τροποποιήσετε τους αριθμούς των θυγατρικών διεργασιών και πιθανώς τον χρήστη και την ομάδα υπό την οποία εκτελείται η ομάδα, αλλά οι δύο ρυθμίσεις που πρέπει οπωσδήποτε να αλλάξετε είναι το όνομα της ομάδας και η υποδοχή στην οποία ακούει, διαφορετικά θα έρχεται σε διένεξη με την υπάρχουσα ομάδα και τα πράγματα θα σταματήσουν να λειτουργούν.

Το όνομα της ομάδας βρίσκεται κοντά στην κορυφή του αρχείου, μέσα σε αγκύλες. Από προεπιλογή είναι [www]. Αλλάξτε το σε ό,τι θέλετε. Προτείνω να ονομάσετε το αρχείο ρυθμίσεων με το ίδιο όνομα, οπότε για χάρη αυτού του παραδείγματος, αλλάξτε το σε [mypool]. Εάν δεν το αλλάξετε, φαίνεται ότι το PHP-FPM θα φορτώσει μόνο το πρώτο αρχείο ρυθμίσεων με αυτό το όνομα, κάτι που είναι πιθανό να προκαλέσει προβλήματα.

Στη συνέχεια, πρέπει να αλλάξετε την υποδοχή ή τη διεύθυνση που ακούτε, η οποία ορίζεται από την οδηγία listen. Από προεπιλογή, το PHP-FPM χρησιμοποιεί υποδοχές Unix, επομένως η οδηγία listen πιθανότατα θα μοιάζει με αυτό:

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

Μπορείτε να το αλλάξετε σε οποιοδήποτε έγκυρο όνομα θέλετε, αλλά και πάλι, προτείνω να επιμείνετε σε κάτι παρόμοιο με το όνομα του αρχείου διαμόρφωσης, ώστε να μπορείτε για παράδειγμα να το ορίσετε ως εξής:

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

Εντάξει, τότε αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή κειμένου.

Μέρος 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 php5-fpm restart
sudo service nginx restart

Και ορίστε, τελειώσατε. Αν κάνατε τα πάντα σωστά, ο εικονικός κεντρικός υπολογιστής που τροποποιήσατε θα πρέπει τώρα να χρησιμοποιεί τη νέα ομάδα PHP-FPM και να μην μοιράζεται θυγατρικές διεργασίες με άλλους εικονικούς κεντρικούς υπολογιστές.

Μοιραστείτε το στο BlueskyΚοινή χρήση στο FacebookΚοινοποίηση στο LinkedInΜοιραστείτε το στο TumblrΚοινοποίηση στο XΚοινοποίηση στο LinkedInΚαρφιτσώστε στο Pinterest

Mikkel Christensen

Σχετικά με τον συγγραφέα

Mikkel Christensen
Ο Μιχαήλ είναι ο δημιουργός και ιδιοκτήτης του miklix.com. Έχει πάνω από 20 χρόνια εμπειρίας ως επαγγελματίας προγραμματιστής υπολογιστών/προγραμματιστής λογισμικού και σήμερα εργάζεται με πλήρη απασχόληση σε μια μεγάλη ευρωπαϊκή εταιρεία πληροφορικής. Όταν δεν ασχολείται με το ιστολόγιο, αφιερώνει τον ελεύθερο χρόνο του σε ένα ευρύ φάσμα ενδιαφερόντων, χόμπι και δραστηριοτήτων, τα οποία μπορεί σε κάποιο βαθμό να αντικατοπτρίζονται στην ποικιλία των θεμάτων που καλύπτονται σε αυτόν τον ιστότοπο.