Email Doanh NghiệpSSLFirewall Anti DDoSTối ưu tốc độ website

NỘI DUNG

Banner blog lễ 30.4 và 1.5

PHP-FPM là gì? Cách tăng tốc độ website với PHP-FPM nhanh chóng

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:23/05/2025
Lượt xem

Đánh giá

5/5 - (108 bình chọn)

PHP-FPM là một dịch vụ tối ưu hóa hiệu suất xử lý PHP, giúp tăng tốc độ, cải thiện khả năng chịu tải và giảm tiêu thụ tài nguyên cho website. Để tìm hiểu chi tiết về PHP-FPM là gì và cách sử dụng nó để tăng tốc độ website một cách hiệu quả, mời bạn đọc tiếp nội dung bài viết mà mình sắp chia sẻ dưới đây.

ra mắt vps n8n

Điểm chính cần nắm

  • PHP-FPM Định nghĩa và vai trò: PHP-FPM (FastCGI Process Manager) là một triển khai FastCGI dành riêng cho PHP, được thiết kế nhằm tối ưu hóa tốc độ và hiệu suất, đặc biệt hiệu quả với các website có lưu lượng lớn hoặc xử lý phức tạp.
  • Khái niệm CGI: CGI (Common Gateway Interface) là phần mềm lập trình giúp kết nối máy chủ với các chương trình, xử lý dữ liệu từ website và truyền tải thông tin đến người dùng hiệu quả.
  • FastCGI định nghĩa: FastCGI, dựa trên CGI, cải thiện hiệu quả xử lý máy chủ web, giảm tiêu thụ CPU, hỗ trợ tối ưu hóa tải trang với công cụ như eAccelerator, mang lại trải nghiệm nhanh và mượt mà cho người dùng.
  • Cách hoạt động của PHP-FPM: Apache gửi code đến PHP-FPM qua giao thức FastCGI. Supervisor chọn worker trong pool để xử lý code, trả kết quả về Apache và trình duyệt. PHP-FPM đảm bảo hiệu suất cao mà không tiêu tốn toàn bộ tài nguyên server.
  • Các tính năng của PHP-FPM: cung cấp khả năng quản lý tác vụ linh hoạt, thích nghi đa môi trường, bảo mật cao, hiệu suất mạnh mẽ và tùy chỉnh linh hoạt, là giải pháp lý tưởng cho website có lưu lượng cao và yêu cầu phức tạp.
  • Các loại PHP Handler phổ biến: DSO là PHP Handler có tốc độ cao nhưng tiêu tốn tài nguyên, trong khi suPHP tập trung vào bảo mật, giúp thực thi mã PHP với quyền của người dùng, phù hợp với môi trường shared hosting.
  • So sánh PHP-FPM và PHP-CGI: PHP-FPM vượt trội so với PHP-CGI về hiệu suất và khả năng quản lý tài nguyên, đặc biệt phù hợp với các website có lưu lượng truy cập lớn hoặc yêu cầu xử lý phức tạp. PHP-CGI phù hợp hơn cho các ứng dụng nhỏ hoặc ít yêu cầu đồng thời.
  • Sử dụng PHP-FPM với cPanel và EasyApache: Cấu hình PHP-FPM trong cPanel, hiểu cách hoạt động của module cPanel PHP-FPM, và tạo User Pool để tối ưu hóa hiệu suất xử lý PHP trên máy chủ web.
  • Cấu hình PHP-FPM với NGINX: Hướng dẫn cài đặt PHP-FPM, cấu hình pool, thiết lập NGINX để hoạt động với PHP-FPM, và kiểm tra cấu hình nhằm đảm bảo hiệu suất và khả năng xử lý tối ưu cho máy chủ web.
  • Nhấn mạnh Vietnix: cung cấp VPS hiện đại với hạ tầng tiên tiến, đảm bảo website hoạt động nhanh, ổn định, an toàn, cùng đội ngũ hỗ trợ 24/7, là nền tảng mạnh mẽ và uy tín cho doanh nghiệp.
  • Giải đáp các câu hỏi liên quan đến PHP-FPM: Giúp bạn hiểu rõ hiệu suất và tính năng vượt trội của PHP-FPM.

PHP-FPM là gì?

PHP-FPM (FastCGI Process Manager) là một công cụ web được sử dụng để tăng tốc độ và hiệu suất của một trang web. Đây là một triển khai FastCGI dành cho PHP, đi kèm với nhiều tính năng bổ sung, đặc biệt hữu ích cho các website có lưu lượng truy cập cao hoặc cần xử lý phức tạp. PHP-FPM là một phương pháp hiệu quả để xử lý nội dung động trên website, giúp cải thiện tốc độ một cách đáng kể.

PHP-FPM là gì
PHP-FPM là gì? Cách tăng tốc độ website với PHP-FPM nhanh chóng 63

Cơ chế hoạt động của PHP-FPM dựa trên việc duy trì các pool (nhóm các worker sẵn sàng xử lý mã PHP). Những tiến trình PHP này được giữ ở trạng thái persistent (liên tục), cho phép xử lý các truy vấn ngay lập tức mà không cần khởi tạo lại tiến trình PHP từ đầu. Nhờ đó, PHP-FPM không chỉ tối ưu hóa môi trường PHP mà còn nâng cao hiệu suất tổng thể của các ứng dụng web một cách rõ rệt.

Với khả năng xử lý hiệu quả và tốc độ vượt trội, PHP-FPM là lựa chọn không thể thiếu để cải thiện hiệu suất cho các trang web hiện đại.

CGI là gì?

CGI (Common Gateway Interface) là một phần mềm lập trình được thiết kế để làm trung gian giữa máy chủ và các chương trình, dựa trên các thông số được định nghĩa rõ ràng.

Không chỉ vậy, CGI còn hỗ trợ xây dựng chương trình từ các website. Sau khi tiếp nhận dữ liệu từ website dưới dạng HTML, phần mềm này sẽ chuyển tiếp thông tin qua các kênh kết nối Internet và đưa dữ liệu đến máy tính của người dùng một cách nhanh chóng.

FastCGI là gì?

FastCGI là một giao thức mở rộng được xây dựng dựa trên CGI nhằm cải thiện hiệu quả xử lý của máy chủ web. Giao thức này giúp máy chủ quản lý đồng thời một lượng lớn yêu cầu từ các trang web mà không làm giảm hiệu suất.

So với các phương pháp khác, FastCGI tiêu thụ ít tài nguyên CPU hơn nhưng vẫn đạt tốc độ gần như DSO. Bên cạnh đó, nó hỗ trợ các công cụ như eAccelerator để tối ưu hóa quá trình tải trang, mang lại trải nghiệm nhanh hơn cho người dùng.

Cách hoạt động của PHP-FPM

Cách hoạt động cụ thể của PHP-FPM như sau:

  • Apache gửi code đến PHP-FPM thông qua một giao diện nhị phân tốc độ cao, gọi là FastCGI.
  • Sau đó một supervisor sẽ chọn worker từ trong pool rồi gán code nhận được.
  • Worker bây giờ thực thi code và trả kết quả về lại cho Apache để chuyển đến trình duyệt web.
  • Sau khi worker hoàn tất, nó sẽ quay lại pool và tiếp tục đợi thực thi code.
cách hoạt động của PHP-FPM
PHP-FPM là gì? Cách tăng tốc độ website với PHP-FPM nhanh chóng 64

Nếu có quá nhiều kết nối đồng thời, đôi khi hệ thống phải đợi đến khi có một worker nào đó khả dụng. Tuy nhiên nó sẽ không bao giờ tiêu thụ toàn bộ tài nguyên của server, vì vậy hiệu quả hơn các phương pháp khác ở trên web server lớn.

Các tính năng chính của PHP-FPM là gì?

Dưới đây là những tính năng nổi bật khiến PHP-FPM trở thành một công cụ mạnh mẽ trong việc quản lý các website có lưu lượng truy cập cao:

  • Quản lý tác vụ độc lập: PHP-FPM có khả năng khởi tạo và kết thúc các tác vụ một cách độc lập, giúp tối ưu hóa quy trình xử lý.
  • Thích nghi với nhiều môi trường làm việc: Công cụ này có thể hoạt động linh hoạt trong các môi trường khác nhau, bao gồm các cổng (port), mẫu ghi log (logging patterns) và xử lý tệp tải lên (file uploads).
  • Tận dụng tệp cấu hình sẵn có: PHP-FPM sử dụng các tệp cấu hình hiện tại để hoàn thành yêu cầu và xóa dữ liệu sau khi xử lý, đảm bảo hiệu suất tối ưu.
  • Quản lý dữ liệu hiệu quả: Công cụ này hỗ trợ xử lý dữ liệu từ cơ sở dữ liệu và các website có lưu lượng truy cập lớn, đảm bảo khả năng chịu tải cao.
  • Cải thiện bảo mật: PHP-FPM tăng cường các biện pháp bảo mật, đồng thời ngăn chặn tình trạng quá tải máy chủ.
  • Khả năng tùy chỉnh cao: Hỗ trợ cấu hình linh hoạt với các thiết lập uid/gid/chroot/environment và php.ini khác nhau, mang lại sự linh hoạt trong quản lý hệ thống.
  • Tối ưu hóa hiệu suất: Cung cấp nhiều tùy chọn để tinh chỉnh hiệu suất, giúp tăng tốc độ xử lý và giảm thiểu tài nguyên tiêu thụ.
Các tính năng chính của PHP-FPM là gì
Tính năng nổi bật của PHP-FPM gồm hiệu suất cao, tiết kiệm tài nguyên, bảo mật tốt và chịu tải lớn.

Những tính năng này khiến PHP-FPM trở thành lựa chọn lý tưởng cho việc quản lý hiệu suất và bảo mật của các website hiện đại, đặc biệt là những trang có lượng truy cập lớn hoặc yêu cầu xử lý phức tạp.

DSO là gì?

DSO, hay còn gọi là mod_php, là một kiểu cấu hình cũ của PHP Handler nhưng vẫn được đánh giá là nhanh nhất. DSO cho phép PHP chạy như một module của Apache, nghĩa là các PHP script sẽ được thực thi dưới quyền user mặc định của Apache, ‘nobody’.

Hạn chế của DSO:

  • Các file được PHP script tạo ra sẽ thuộc quyền sở hữu của user ‘nobody’, khiến chúng không thể được truy cập từ trình duyệt web. Điều này thường gây ra sự cố cho người dùng WordPress, đặc biệt khi sử dụng tính năng upload tệp hoặc tự động cập nhật.
  • Bảo mật kém: Nếu hacker phát hiện lỗ hổng trong PHP script, họ có thể sử dụng quyền hạn của user ‘nobody’ để thực thi các file độc hại, thậm chí xâm nhập vào các file hệ thống. Giải pháp duy nhất là luôn cập nhật PHP lên phiên bản mới nhất.

SuPHP là gì?

SuPHP là một PHP Handler hoạt động dưới dạng CGI module, nhưng có điểm khác biệt quan trọng: các PHP script được thực thi với quyền sở hữu của user chạy script đó. Đây là phương pháp được cPanel khuyến nghị sử dụng để đảm bảo an toàn và dễ dàng quản lý.

Lợi ích của SuPHP:

  • Các file upload lên website sẽ được gán quyền chính xác cho user thực hiện thao tác đó. Với SuPHP hoặc FastCGI, các tính năng như upload file và auto update trên WordPress hoạt động hiệu quả hơn.
  • Về bảo mật, SuPHP vượt trội hơn DSO hoặc CGI vì nó ngăn chặn các PHP script không xác định quyền sở hữu được thực thi. Điều này đảm bảo rằng nếu một tài khoản bị hack, mã độc sẽ không thể lây nhiễm sang các tài khoản khác.

Nhược điểm của SuPHP:

  • Tiêu thụ nhiều tài nguyên CPU hơn các handler khác.
  • Không tương thích với Opcode Cache như xCache.

Trong trường hợp máy chủ của bạn có CPU load cao khi sử dụng SuPHP, bạn có thể chuyển sang các giải pháp khác như DSO hoặc FastCGI để cải thiện hiệu năng.

So sánh PHP-FPM và PHP-CGI

Cả PHP-FPM và CGI đều là các công cụ được thiết kế để hỗ trợ máy chủ trong việc xử lý các ứng dụng web khi kết nối internet. Mặc dù được sử dụng rộng rãi, hai công cụ này lại sở hữu những ưu và nhược điểm khác nhau, cụ thể như sau:

Ưu và nhược điểm của PHP-FPM

Ưu điểm
  • default icon

    Cung cấp hiệu suất cao, ổn định và bảo mật hơn so với CGI.

  • default icon

    Chạy các PHP Scripts dưới quyền sở hữu của chính PHP Scripts đó, tăng tính an toàn và kiểm soát.

  • default icon

    Tăng tốc độ tải trang, cải thiện trải nghiệm người dùng và khả năng truy cập, từ đó tăng lưu lượng truy cập web.

Nhược điểm
  • default icon

    Tiêu tốn nhiều bộ nhớ RAM khi hoạt động.

Mặc dù có nhược điểm về việc sử dụng nhiều RAM, nhưng PHP-FPM vẫn là lựa chọn hàng đầu cho các trang web cần tốc độ tải nhanh, bảo mật cao và tối ưu tài nguyên CPU.

Ưu điểm và nhược điểm CGI so với PHP-FPM là gì?

Ưu điểm
  • default icon

    Là công cụ tiên phong trong việc tạo ra các trang web động.

  • default icon

    Có thể hoạt động độc lập trên máy chủ và hỗ trợ nhiều ngôn ngữ lập trình khác nhau như Python, Tcl, C/C++, Java.

  • default icon

    Tương thích tốt với các hệ thống máy chủ sử dụng giao thức kết nối cơ bản.

  • default icon

    Có thể mở rộng khả năng bằng cách tích hợp với các module hỗ trợ khác, giúp cải thiện tính năng và hiệu quả.

Nhược điểm
  • default icon

    Hiệu suất thấp so với PHP-FPM do phải khởi tạo tiến trình mới cho mỗi yêu cầu truy cập web động.

  • default icon

    Tiêu tốn tài nguyên CPU, dẫn đến giảm tốc độ xử lý và tải trang.

  • default icon

    Không tối ưu như PHP-FPM trong việc tận dụng tài nguyên hệ thống.

  • default icon

    Dần mất vị thế do không đáp ứng được yêu cầu về tốc độ và hiệu suất trên các trang web hiện đại.

Mặc dù CGI là công cụ tiên phong trong việc phát triển web động, nhưng hạn chế về hiệu suất và tài nguyên đã khiến nó dần bị thay thế bởi các giải pháp như PHP-FPM, vốn tối ưu hơn trong môi trường web hiện đại.

Tóm lại, nếu bạn sở hữu website có traffic lớn và tài nguyên server thấp thì PHP-FPM sẽ là một lựa chọn hợp lý. Mặt khác, các website cơ bản nên sử dụng PHP-CGI vì khả năng thực thi code PHP tốt hơn, đồng thời cũng không sử dụng quá nhiều tài nguyên của các website nhỏ.

VPS NVMe Vietnix là giải pháp tối ưu cho website có lưu lượng truy cập lớn. Với cấu hình mạnh mẽ, ổ cứng NVMe tốc độ cao, CPU Platinum hiện đại, dịch vụ đảm bảo website tải nhanh dưới 1 giây và hoạt động ổn định ngay cả khi truy cập tăng cao.

Ngoài ra, bạn được toàn quyền quản lý máy chủ, cùng tính năng backup tự động hàng tuần, giúp bảo vệ dữ liệu an toàn. VPS NVMe Vietnix là lựa chọn hoàn hảo để nâng cao hiệu suất website. Trải nghiệm ngay hôm nay!

Việc kích hoạt và cấu hình PHP-FPM trong cPanel & WHM tương đối đơn giản. Người dùng có thể tùy chọn miền sử dụng PHP-FPM và đặt các biến cấu hình có thể ảnh hưởng đến PHP-FPM.

Trước hết, hãy bật System PHP-FPM trong MultiPHP Manager.

turn on
PHP-FPM là gì? Cách tăng tốc độ website với PHP-FPM nhanh chóng 65

Sau khi bật lên, WHM vẫn chưa kích hoạt PHP-FPM cho mọi domain có sẵn.

Ta có thể buộc mọi tài khoản trên server sử dụng PHP-FPM bằng cách click vào nút Convert All Accounts to PHP-FPM

convert all accounts to php-fpm
PHP-FPM là gì? Cách tăng tốc độ website với PHP-FPM nhanh chóng 66

Ngoài ra, ta cũng có thể kích hoạt PHP-FPM cho từng domain trong bảng ở cuối trang.

Chọn domain rồi nhấn vào On trong menu drop-down như hình bên dưới:

kích hoạt PHP-FPM cho từng domain
PHP-FPM là gì? Cách tăng tốc độ website với PHP-FPM nhanh chóng 67

1. Cấu hình PHP-FPM trong cPanel

Sau khi kích hoạt PHP-FPM, ta có thể cấu hình các cài đặt mặc định của của thống và cả cài đặt cho từng domain cụ thể trong MultiPHP Manager.

Click vào tab System PHP-FPM Configuration.

Click vào tab System PHP-FPM Configuration.
PHP-FPM là gì? Cách tăng tốc độ website với PHP-FPM nhanh chóng 68

Có ba cài đặt pool cho người dùng thay đổi. Các giá trị mặc định gồm có:

  • Max Requests: Số lượng request mỗi worker nên thực thi trước khi tự restart. Cài đặt này giúp hạn chế việc rò rỉ bộ nhớ. Giá trị mặc định 20 tương đối ổn với hầu hết các web hosting, nhưng ta nên đặt thành 40 hoặc 60 với các server có traffic lớn.
  • Process Idle Timeout: Xác định thời gian chờ của các worker rảnh rỗi (idle) trước khi tự tắt. Các worker rảnh rỗi này dù không tiêu thụ tài nguyên, nhưng ta vẫn nên tắt các worker này sớm để giảm thời gian khởi tạo. Giá trị mặc định là 10, tương đối thấp với nhiều server có traffic lớn.
  • Max Children: Số lượng worker tối đa trong mỗi pool, gái trị mặc định là 5.

Có rất nhiều yếu tố ảnh hưởng đến những giá trị thiết lập tối ưu, bao gồm cả code server chạy và số lượng RAM mà hệ thống có.

2. Cách hoạt động của module cPanel PHP-FPM là gì?

Giao diện của WHM có hầu hết các cấu hình cài đặt quan trọng, người dùng có thể tham khảo thêm trong tài liệu của PHP. Để thêm hoặc chỉnh sửa các cài đặt, ta cần chỉnh sửa file config trên command line của server, hoặc trong cPanel & WHM File Manager.

Hai file config hệ thống quan trọng nhất là:

  • /var/cpanel/ApachePHPFPM/system.yaml
  • /var/cpanel/ApachePHPFPM/system_pool_defaults.yaml

WHM không tạo ra các file này vì hệ thống không cần đến, tuy nhiên người dùng vẫn có thể dễ dàng tạo và thêm directive để ghi đề các thiết lập mặc định như sau:

touch /var/cpanel/ApachePHPFPM/system.yaml
touch /var/cpanel/ApachePHPFPM/system_pool_defaults.yaml

Tạo directory:

mkdir -p /var/cpanel/ApachePHPFPM/

Trong các file này, nhập các directive khác để ghi đè lên directive mặc định của hệ thống. Chẳng hạn, nếu bạn muốn đổi emergency_restart_threshold từ giá trị mặc định 0 thành 10 thì file system_pool_defaults.yaml sẽ có dạng như sau:

file system_pool_defaults.yaml
PHP-FPM là gì? Cách tăng tốc độ website với PHP-FPM nhanh chóng 69

Lưu ý: Trong tài liệu của PHP còn có một số directive được định dạng bằng dấu chấm (.) hay nhiều kí tự khác. Khi thêm các directive vào file config, những ký tự này sẽ được thay thành dấu “_”.

3. Tạo User Pool trong PHP-FPM

Bây giờ ta sẽ tìm hiểu cách tạo và cấu hình user pool thủ công trong PHP-FPM. Đây là nhóm các worker được sử dụng bởi trang host trên miền của server người dùng.

Module PHP-FPM tạo một worker pool cho một miền nếu nó xác định được một file config trong:

/var/cpanel/userdata/[user]/[domain].php_fpm.yaml

Trong đó, thay [user] và [domain] thành các giá trị tương ứng dụng server. Ta có thể tạo file này hoặc activate PHP-FPM cho một domain cụ thể trong WHM để tự động tạo file:

activate PHP-FPM
PHP-FPM là gì? Cách tăng tốc độ website với PHP-FPM nhanh chóng 70

Cũng như các file hệ thống, ta có thể thêm directive để cấu hình user pool. Sau khi tạo và chỉnh sửa file .yaml xong, chạy lệnh sau để thêm directive vào file config của Apache và đồng thời restart lại PHP-FPM:

/scripts/php_fpm_config – rebuild

Yêu cầu:

  • Có khả năng mở một SSH session trên hệ thống Ubuntu 18.05 bằng root hay sudo user.
  • Cài đặt sẵn NGINX và PHP trên hê thống.

>> Xem thêm: Session là gì? Toàn bộ kiến thức về Session bạn cần biết

1. Cài đặt PHP-FPM

Nginx không thể tự chạy script PHP mà cần một module như PHP-FPM để có thể quản lý script PHP hiệu quả. Mặt khác, PHP-FPM lại hoạt động ngoài môi trường Nginx bằng cách tạo ra chính process của riêng nó. Vì vậy, khi người dùng yêu cầu một trang PHP thì server nginx sẽ chuyển nó đến dịch vụ PHP-FPM thông qua FastCGI.

Quá trình cài đặt PHP-FPM trong Ubuntu 18.05 tùy vào phiên bản PHP, bạn có thể kiểm tra tài liệu sử dụng trước khi bắt đầu bước này. Đoạn code dưới đây cho phép cài đặt FPM trên phiên bản PHP 7.3:

# apt-get install php7.3-fpm

Dịch vụ FPM sẽ tự động khởi chạy sau khi quá trình hoàn tất. Người dùng có thể xác thực việc cài đặt bằng lệnh systemd sau:

# systemctl status php7.3-fpm
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-02-17 06:29:31 UTC; 30s ago
     Docs: man:php-fpm7.3(8)
 Main PID: 32210 (php-fpm7.3)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 1152)
   CGroup: /system.slice/php7.3-fpm.service
           ├─32210 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
           ├─32235 php-fpm: pool www
           └─32236 php-fpm: pool www

2. Cấu hình PHP-FPM Pool

Dịch vụ php-fpm có tạo một pool mặc định, cấu hình của pool này có thể được tìm thấy trong folder /etc/php/7.3/fpm/pool.d. Người dùng có thể tùy chỉnh pool mặc định theo ý muốn, nhưng ta nên tạo các pool riêng biệt để có thể kiểm soát việc phân bổ tài nguyên cho mỗi FPM process tốt hơn.

Ngoài ra, việc phân tách các pool cũng cho phép chung chạy độc lập với nhau, khi đó mỗi ứng dụng php có thể được cấu hình bằng các cài đặt cache của riêng nó qua PHP-FPM. Mọi thay đổi trong cấu hình của một pool sẽ không yêu cầu người dùng dừng hay khởi động bất kỳ pool nào khác.

Bây giờ hãy cũng tạo một pool FPM để chạy ứng dụng PHP thông qua một user riêng biệt. Trước tiên, tạo user mới có các đặc quyền riêng với pool:

# groupadd wordpress_user
# useradd -g wordpress_user wordpress_user

Tiếp theo, chuyển sang directory cấu hình của FPM để tạo một file config bằng text editor bất kỳ:

# cd /etc/php/7.3/fpm/pool.d
# vi wordpress_pool.conf
[wordpress_site]
user = wordpress_user
group = wordpress_user
listen = /var/run/php7.2-fpm-wordpress-site.sock
listen.owner = www-data
listen.group = www-data
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
; Choose how the process manager will control the number of child processes. 
pm = dynamic 
pm.max_children = 75 
pm.start_servers = 10 
pm.min_spare_servers = 5 
pm.max_spare_servers = 20 
pm.process_idle_timeout = 10s

Thông tin chi tiết về các tùy chọn cấu hình và giá trị:

  • [wordpress_site]: Tên của pool, không được trùng nhau.
  • user and group: User và group mà pool sẽ chạy.
  • listen: Tên socket file của pool.
  • listen.owner and listen.group: Trùng với user và group mà nginx đang chạy.
  • php_admin_value: Cho phép đặt các giá trị cấu hình PHP tùy chỉnh.
  • php_admin_flag: Cho phép đặt boolean flag.
  • pm: Cài đặt trình quản lý các process, giá trị Dynamic cho biết số lượng process con được đặt động, dựa trên các directive dưới đây:
  • pm.max_children: Số lượng con (children) tối đa có thể tồn tại cùng lúc.
  • pm.start_servers: Số lượng children được tạo khi khởi động.
  • pm.min_spare_servers: Số lượng children tối thiểu ở trạng thái ‘idle’ (rảnh rỗi – đang đợi xử lý). Nếu số lượng idle process nhỏ hơn giá trị này, một số children sẽ được tạo thêm.
  • pm.max_spare_servers: Số lượng children tối đa ở trạng thái ‘idle’. Nếu số lượng idle process lớn hơn thì một số children sẽ bị hủy.
  • pm.process_idle_timeout: Số lượng idle process tối đa, chỉ dùng khi giá trị của pm được đặt thành Dynamic.

Bên cạnh đó, ta cũng có thể truyền một số biến môi trường hệ thống vào dịch vụ php-fpm bằng các lệnh như nv['PHP_FOO'] = $bar.

Chẳng hạn, ta có thể thêm option sau vào file config để đặt hostname và vị trí folder tạm thời cho môi trường PHP.

...
...
env[HOSTNAME] = $HOSTNAME
env[TMP] = /tmp
...
...

Ngoài ra, các cài đặt cho process manager ở file config của pool ở trên được đặt thành động. Một số tùy chọn khác gồm có:

  • Static: Số lượng process PHP duy trì sẽ được cố định.
  • ondemand: Không tạo children khi khởi động. Các children sẽ được phân nhánh (fork) khi nhận được request mới từ server.

Sau khi hoàn tất việc tạo file config, restart lại dịch vụ fpm để áp dụng các thay đổi mới:

# systemctl start php7.3-fpm

FPM pool sẽ được tạo ngay lập tức để phục vụ các trang PHP. Lưu ý rằng ta cũng có thể tạo một dịch vụ systemd bằng cách chỉ định những file config FPM ở trên để khởi động/dừng các pool mà không ảnh hưởng nhau.

3. Cấu hình NGINX cho PHP-FPM

Bây giờ ta cần tạo một server block NGINX để sử dụng pool vừa tạo ở trên. Cụ thể, chỉnh sửa file config NGINX rồi truyền đường dẫn đến file socket bằng option fastcgi_pass:

server {
         listen       80;
         server_name  example.journaldev.com;
         root         /var/www/html/wordpress;

         access_log /var/log/nginx/example.journaldev.com-access.log;
         error_log  /var/log/nginx/example.journaldev.com-error.log error;
         index index.html index.htm index.php;

         location / {
                      try_files $uri $uri/ /index.php$is_args$args;
         }

         location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php7.2-fpm-wordpress-site.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
    }
}
Cấu hình NGINX cho PHP-FPM
PHP-FPM là gì? Cách tăng tốc độ website với PHP-FPM nhanh chóng 71

Đảm bảo cú pháp các cấu hình đều chính xác, sau đó restart lại NGINX bằng lệnh sau:

# nginx-t
# systemctl restart nginx

4. Kiểm tra cấu hình PHP-FPM NGINX

Để kiểm tra xem file config NGINX có đang sử dụng pool FPM ở trên hay không, ta cần tạo một file PHP info trong web root bằng lệnh sau:

# cd /var/www/html/wordpress
# echo "<?php echo phpinfo();?>" > info.php

Trong đó thay phần đường dẫn /var/www/html/wordpress thành giá trị tương ứng của môi trường.

Tiếp theo, trỏ trình duyệt web đến trang PHP info vừa tạo. Để ý rằng các biến $_SERVER[‘USER’]$_SERVER[‘HOME’] đều đang trỏ đến wordpress_user/home/wordpress_user đã được thiết lập trong file config FPM ở bước trước. Vì vậy có thể yên tâm rằng NGINX đang phục vụ các trang PHP sử dụng FPM pool ta đã tạo.

Vietnix – Dịch vụ VPS chuyên nghiệp, nền tảng mạnh mẽ cho doanh nghiệp

Vietnix mang đến dịch vụ VPS chuyên nghiệp, được thiết kế để phục vụ tối đa nhu cầu của các doanh nghiệp. Với công nghệ hiện đại và cơ sở hạ tầng tiên tiến, Vietnix cam kết giúp website vận hành nhanh chóng, an toàn và ổn định. Đội ngũ hỗ trợ kỹ thuật giàu kinh nghiệm luôn sẵn sàng 24/7 để tư vấn và xử lý mọi vấn đề phát sinh. Lựa chọn Vietnix, bạn sẽ có nền tảng trực tuyến mạnh mẽ, uy tín cho doanh nghiệp của mình.

Thông tin liên hệ:

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Website: https://vietnix.vn/ 

Câu hỏi thường gặp

PHP-FPM có tốt hơn không?

PHP-FPM nhanh hơn các phương pháp dựa trên CGI truyền thống, chẳng hạn như SUPHP, cho môi trường PHP nhiều người dùng. Nó không làm quá tải bộ nhớ của hệ thống với PHP từ các quy trình Apache. Các tính năng của PHP-FPM bao gồm: Sinh sản quy trình thích ứng

FPM là viết tắt của từ gì trong PHP-FPM?

FPM (FastCGI Process Manager) là một triển khai FastCGI PHP chính có chứa một số tính năng (chủ yếu) hữu ích cho các trang web tải nặng.

WordPress có cần PHP-FPM không?

Để chạy WordPress, bạn cần một máy chủ web, máy chủ cơ sở dữ liệu và ngôn ngữ kịch bản PHP. Để WordPress hoạt động ở mức hiệu suất tối đa, bạn phải định cấu hình nhiều máy chủ khác nhau này theo cài đặt được đề xuất của WordPress.

Làm cách nào để start PHP-FPM?

Trên Windows:
Open Services trong Management Console: Start > Run > “services.msc” > OK.
Chọn php-fpm từ list.
Nhấn chuột phải và chọn Start.

PHP-FPM có an toàn không?

Vì mỗi yêu cầu được xử lý bởi một quy trình riêng biệt (được sử dụng lại) trong PHP-FPM, nên an toàn khi sử dụng mô-đun với PHP-FPM.

Với những ưu điểm vượt trội về hiệu suất, khả năng tối ưu tài nguyên, tính linh hoạt và bảo mật, PHP-FPM là một giải pháp lý tưởng cho những ai muốn tăng tốc và nâng cao hiệu quả hoạt động của website. Hy vọng những chia sẻ trên đã giúp bạn hiểu rõ hơn về PHP-FPM là gì và cách ứng dụng nó vào việc cải thiện tốc độ website. Để khám phá thêm các giải pháp tối ưu khác, bạn có thể tham khảo một số bài viết dưới đây:

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
1 Comment
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Hải
Khách
Hải
2 năm trước

theo như bài thì e thấy cả cgi và fpm đều tách biệt với webserver. Nhưng với cgi thì được coi là ưu điểm bảo mật. Con fpm thì ko thấy đề cập gì. Không biết 2 tư tưởng có gì khác nhau ạ?

Screenshot from 2023-04-08 22-17-38.png

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi sinh nhật
Nhanh tay, số lượng có hạn!
17/05/2025 - 22/06/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG