חזרה לבלוג
ינואר 13, 2026מדריכים

איך להגדיר PHP-FPM לביצועים אופטימליים

מדריך מלא להגדרת הגדרות מאגר PHP-FPM, כוונון ביצועים ושילוב עם Nginx.

איך להגדיר PHP-FPM לביצועים אופטימליים

PHP-FPM (FastCGI Process Manager) הוא יישום חלופי של PHP FastCGI עם תכונות נוספות שימושיות לאתרים בעלי עומס גבוה. תצורה נכונה יכולה לשפר משמעותית את ביצועי השרת שלך וניצול המשאבים.

התקנת PHP-FPM

bash
# אובונטו/דביאן
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 מעודכנים