Quay lại blog
Tháng Một 13, 2026Hướng dẫn

Cách cấu hình PHP-FPM để có hiệu suất tối ưu

Hướng dẫn đầy đủ về việc cấu hình cài đặt pool PHP-FPM, tinh chỉnh hiệu suất và tích hợp với Nginx.

Cách cấu hình PHP-FPM để có hiệu suất tối ưu

PHP-FPM (FastCGI Process Manager) là một trình thực thi PHP FastCGI thay thế với các tính năng bổ sung hữu ích cho các trang web có lưu lượng truy cập cao. Cấu hình đúng cách có thể cải thiện đáng kể hiệu suất máy chủ và mức sử dụng tài nguyên của bạn.

Cài đặt 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

# Khởi động và bật PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Cấu hình Pool PHP-FPM

Chỉnh sửa tệp cấu hình pool để tối ưu hóa hiệu suất:

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

# Các cài đặt chính:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

# Quản lý quy trình
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

Tinh chỉnh hiệu suất

Tối ưu hóa PHP-FPM cho tài nguyên máy chủ của bạn:

bash
# Tính toán max_children tối ưu:
# (Tổng RAM - Các dịch vụ khác) / (Bộ nhớ trên mỗi quy trình PHP)
# Ví dụ: (2GB - 500MB) / 50MB = 30 max_children

# Chỉnh sửa php.ini để có hiệu suất tốt hơn
sudo nano /etc/php/8.1/fpm/php.ini

# Các cài đặt được đề xuất:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# Khởi động lại PHP-FPM
sudo systemctl restart php-fpm

Cấu hình Nginx

Cấu hình Nginx để làm việc với PHP-FPM:

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

# Thêm xử lý 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;
}

# Kiểm tra và tải lại Nginx
sudo nginx -t
sudo systemctl reload nginx

Theo dõi PHP-FPM

bash
# Kiểm tra trạng thái PHP-FPM
sudo systemctl status php-fpm

# Xem các quy trình PHP-FPM
ps aux | grep php-fpm

# Kiểm tra trạng thái pool (nếu trang trạng thái được bật)
curl http://localhost/status

# Xem nhật ký
sudo tail -f /var/log/php8.1-fpm.log

Mẹo tối ưu hóa PHP-FPM

  • Điều chỉnh pm.max_children dựa trên RAM có sẵn
  • Sử dụng pm = dynamic cho hầu hết các trường hợp sử dụng
  • Thiết lập pm.max_requests để ngăn chặn rò rỉ bộ nhớ
  • Bật opcache để có hiệu suất tốt hơn
  • Thường xuyên theo dõi trạng thái PHP-FPM
  • Sử dụng các pool riêng biệt cho các ứng dụng khác nhau
  • Giữ PHP và PHP-FPM luôn được cập nhật