بازگشت به وبلاگ
ژانویه 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 بهینه:
# (Total RAM - Other services) / (Memory per PHP process)
# مثال: (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 را به‌روز نگه دارید