Πίσω στο blog
Ιανουάριος 13, 2026Οδηγοί

Πώς να Διαμορφώσετε το PHP-FPM για Βέλτιστη Απόδοση

Πλήρης οδηγός για τη διαμόρφωση ρυθμίσεων ομάδας PHP-FPM, συντονισμό απόδοσης και ενσωμάτωση με Nginx.

Πώς να Διαμορφώσετε το PHP-FPM για Βέλτιστη Απόδοση

Το PHP-FPM (FastCGI Process Manager) είναι μια εναλλακτική υλοποίηση PHP FastCGI με πρόσθετες δυνατότητες χρήσιμες για ιστότοπους υψηλής επισκεψιμότητας. Η σωστή διαμόρφωση μπορεί να βελτιώσει σημαντικά την απόδοση του διακομιστή σας και την αξιοποίηση πόρων.

Εγκατάσταση PHP-FPM

bash
# Ubuntu/Debian
sudo apt update
sudo apt install php-fpm php-mysql php-mbstring php-xml php-curl -y

# CentOS/RHEL
sudo yum install php-fpm php-mysql php-mbstring php-xml php-curl -y

# Έναρξη και ενεργοποίηση PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Διαμόρφωση Ομάδας PHP-FPM

Επεξεργαστείτε το αρχείο διαμόρφωσης ομάδας για βελτιστοποίηση απόδοσης:

bash
sudo nano /etc/php/8.1/fpm/pool.d/www.conf

# Βασικές ρυθμίσεις:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

# Διαχείριση διαδικασιών
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

Συντονισμός Απόδοσης

Βελτιστοποιήστε το PHP-FPM για τους πόρους του διακομιστή σας:

bash
# Υπολογισμός βέλτιστου max_children:
# (Συνολική RAM - Άλλες υπηρεσίες) / (Μνήμη ανά διαδικασία PHP)
# Παράδειγμα: (2GB - 500MB) / 50MB = 30 max_children

# Επεξεργασία php.ini για καλύτερη απόδοση
sudo nano /etc/php/8.1/fpm/php.ini

# Συνιστώμενες ρυθμίσεις:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# Επανεκκίνηση PHP-FPM
sudo systemctl restart php-fpm

Διαμόρφωση Nginx

Διαμορφώστε το Nginx για να συνεργάζεται με το PHP-FPM:

bash
sudo nano /etc/nginx/sites-available/yourdomain.com

# Προσθήκη χειρισμού PHP:
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

# Δοκιμή και επαναφόρτωση Nginx
sudo nginx -t
sudo systemctl reload nginx

Παρακολούθηση PHP-FPM

bash
# Έλεγχος κατάστασης PHP-FPM
sudo systemctl status php-fpm

# Προβολή διαδικασιών PHP-FPM
ps aux | grep php-fpm

# Έλεγχος κατάστασης ομάδας (εάν είναι ενεργοποιημένη η σελίδα κατάστασης)
curl http://localhost/status

# Προβολή αρχείων καταγραφής
sudo tail -f /var/log/php8.1-fpm.log

Συμβουλές Βελτιστοποίησης PHP-FPM

  • Προσαρμόστε το pm.max_children με βάση τη διαθέσιμη RAM
  • Χρησιμοποιήστε pm = dynamic για τις περισσότερες περιπτώσεις χρήσης
  • Ορίστε pm.max_requests για την αποτροπή διαρροών μνήμης
  • Ενεργοποιήστε opcache για καλύτερη απόδοση
  • Παρακολουθείτε τακτικά την κατάσταση PHP-FPM
  • Χρησιμοποιήστε ξεχωριστές ομάδες για διαφορετικές εφαρμογές
  • Διατηρήστε τα PHP και PHP-FPM ενημερωμένα