Mục lục

PHP-FPM là gì? Hướng dẫn Cấu hình PHP-FPM và NGINX 2024

PHP-FPM là gì? Cấu hình PHP-FPM và NGINX – Bài viết này, chúng ta hãy cùng tìm hiểu về PHP-FPM là gì cũng như điểm mạnh/yếu của PHP-FPM là gì và cách cấu hình PHP-FPM, NGINX để sử dụng nó hiệu quả nhất. Hãy bắt đầu nào !!

Xem thêm: 10 PHP Framework tốt nhất để lập trình web 2020

I. PHP-FPM là gì?

PHP là ngôn ngữ lập trình mã nguồn mở, được dùng để viết cho máy chủ hay các mục đích tổng quát khác. Ngôn ngữ lập trình này có dạng giống với Java hay C. Thời gian ngắn để viết các cú pháp lập trình là yếu tố khiến PHP được ưu ái hơn so sánh với các ngôn ngữ lập trình khác.

PHP-FPM là một chương trình có khả năng phiên dịch PHP khi chạy Website cho server. PHP-FPM được phát triển dựa trên việc mở rộng CGI.

PHP-FPM có thể khớp công đoạn xử lý nội dung của trang Web server và hỗ trợ giải quyết thông tin một cách nhanh chóng từ các Website không giống nhau, trong cùng một khoảng thời gian. PHP-FPM được đông đảo người dùng chọn lựa bởi tốc độ xử lý PHP script nhanh, tăng lượng truy cập và tính năng tối ưu hóa cho những Website có kích thước lớn.

php-fpm là gì
PHP-FPM là gì?

PHP-FPM và Nginx

Nginx là sự kết hợp lý tưởng với PHP-FPM. Tại sao? Bởi vì nó là một máy chủ web ổn định được công nhận về hiệu suất ấn tượng và mức tiêu thụ tài nguyên thấp.

Nó có cấu trúc không đồng bộ có khả năng mở rộng cao, theo các sự kiện. Trên hết, hiệu suất tiêu thụ bộ nhớ tốt hơn đáng kể khi sử dụng Nginx và PHP-FPM cùng nhau.

PHP chạy như một dịch vụ biệt lập khi bạn sử dụng PHP-FPM. Việc sử dụng phiên bản PHP này làm trình thông dịch ngôn ngữ có nghĩa là các yêu cầu sẽ được xử lý qua cổng TCP / IP và máy chủ Nginx chỉ xử lý các yêu cầu HTTP, trong khi PHP-FPM thông dịch mã PHP. Việc tận dụng hai dịch vụ riêng biệt là rất quan trọng để trở nên hiệu quả hơn.

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

PHP-FPM bao gồm nhiều tính năng có thể tỏ ra có lợi cho các trang web nhận được lưu lượng truy cập với khối lượng lớn thường xuyên. Đó là:

  • Khả năng khởi động làm việc bằng nhiều uid / gid / chroot / environment và php.ini, thay thế chế độ an toàn mà người dùng có thể mong đợi
  • Quản lý chuyên sâu để xử lý dừng / bắt đầu đơn giản
  • Ghi nhật ký stdout và stderr
  • Khởi động lại khẩn cấp có sẵn, trong trường hợp bộ nhớ cache opcode vô tình bị phá hủy
  • Hỗ trợ tải lên nhanh hơn
  • Dựa trên tệp cấu hình php.ini
  • Cấu hình biến Slowlog để phát hiện các hàm mất nhiều thời gian hơn bình thường để thực thi
  • Cải tiến FastCGI, với chức năng đặc biệt để dừng và tải xuống dữ liệu trong khi hoàn thành các quy trình dài (ví dụ: xử lý thống kê)
  • Số liệu thống kê cơ bản có sẵn, tương tự như mô-đun trạng thái mod trong Apache

III. Thiết lập NGINX và PHP-FPM

Hướng dẫn thiết lập PHP-FPM và Nginx
Hướng dẫn thiết lập PHP-FPM và Nginx

NGINX là phần mềm Web server mã nguồn mở, sử dụng cấu trúc hướng sự kiện (event-driven) không đồng bộ (asynchronous)Mục tiêu ban đầu để phục vụ HTTP cache tuy nhiên sau được áp dụng vào reverse proxy, HTTP load balancer và các giao thức truyền mail như IMAP4, POP3, và SMPT.

Thiết lập NGINX

Bước 1: Để cài đặt cấu trúc NGINX quý khách hàng mở tệp cấu trúc của NGINX tại mục /etc/nginx/nginx.conf

Bước 2: Xem chỉ số CPU Core theo công thức:

cat /proc/cpuinfo |grep processor

processor :0processor :1processor :2processor :3

Bước 3Vận dụng lệnhmax_clients = worker_processes * worker_connections để thay đổi thông số worker_processes tương ứng với số lượng nhân CPU trong máy chủ bạn cấu trúc.

Bước 4: Giới hạn kích thước từng phần của các http request bằng công thức:

client_max_body_size 20m;client_body_buffer_size 128k;

Bước 5: Điều chỉnh lại các file tĩnh qua công thức:

location ~*.(jpg|jpeg|gif|png|css|js|ico|xml)$ access_log    off;log_not_found   off;expires 360d;

Bước 6: Thiết lập chuyển sang dùng unix socket cho việc giới thiệu thông tin:

location ~*.php$ fastcgi_index  index.php;#Chinh tai dayfastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;include     fastcgi_params;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;fastcgi_param  SCRIPT_NAME    $fastcgi_script_name;

Bước 7: Cài đặt bỏ cho phép truy cập các tệp hoặc thư mục ẩn.

location ~/.access_log off;log_not_found off;deny all;

Thiết lập PHP-FPM

Bước 1: Để thiết lập cấu tạo PHP-FPM, quý khách hàng mở tệp cấu trúc của PHP-FPM tại mục /etc/php-fpm.d.

Bước 2xoay chỉnh đường dẫn file sock theo công thức:

listen =/var/run/php-fpm/php-fpm.sock

user = sitegroup= site

request_slowlog_timeout =5sslowlog =/var/log/php-fpm/slowlog-site.log

listen.allowed_clients =127.0.0.1pm =dynamicpm.max_children =5pm.start_servers =3pm.min_spare_servers =2pm.max_spare_servers =4pm.max_requests =200listen.backlog =-1pm.status_path =/status

request_terminate_timeout =120srlimit_files =131072rlimit_core = unlimited

catch_workers_output = yes

env[HOSTNAME]= $HOSTNAME

env[TMP]=/tmp

env[TMPDIR]=/tmp

env[TEMP]=/tmp

Bước 3Xác định các thông số: pm.max_children ,pm.start_servers , pm.min_spare_servers và pm.max_spare_servers theo các công thức như sau:

  • pm.max_children = Số process con (child processes) tối đa có thể tại (bằng với tổng số request có thể phục vụ).
  • pm.start_servers = Tổng số child processes được tạo khi khởi động php-fpm (được tính bằng công thức`min_spare_servers + (max_spare_servers – min_spare_servers) / 2` )
  • pm.min_spare_servers = Tổng số child process nhàn rỗi tối thiểu được duy trì.
  • pm.max_spare_servers = Tổng số child process nhàn rỗi tối đa được duy trì.

Bảo mật PHP-FPM/Nginx trong môi trường Shared Hosting

Bảo mật PHP-FPM/Nginx trong môi trường Shared Hosting giúp quá trình sử dụng được dễ dàng hơn
Cách bảo mật PHP-FPM/Nginx trong môi trường Shared Hosting giúp quá trình vận dụng được dễ dàng hơn

Vấn đề bảo mật PHP-FPM/Nginx trong môi trường Shared Hosting là một điều cực kì quan trọng. Khi truy cập một Web PHP, quý khách hàng cần thiết lập một Pool cho từng Web để các script PHP thực thi như một hoặc một nhóm người sử dụng được định nghĩa trong đó.

Điều này không chỉ có vai trò quan trọng trong lúc tuyệt mật, mà còn bảo đảm quá trình dùng được đơn giản, thuận lợi hơn. Vì khi tạo lập một Pool, khách hàng có thể dùng toàn bộ khả năng trên suPHP cho PHP-FPM/Nginx. Bạn không cần cài đặt bất kỳ FTP nào, cũng như những sự cố bất ngờ có thể xảy ra do vận dụng các script PHP không thuộc quyền sở hữu của một hoặc một nhóm khách hàng riêng biệt.

Thực tế vào thời điểm hiện tại, mô hình Shared Hosting chỉ thích hợp với các landing page. Vì thế nếu bạn đang sử dụng Shared Hosting cho Website của mình, chúng tôi khuyên bạn nên chuyển qua mua Cloud Hosting. Bởi Cloud Hosting bảo mật hơn Shared Hosting và khả năng mở rộng, up-time cũng tốt hơn nhiều khi so sánh với Shared Hosting.

Kết

Như vậy, bạn đã biết được PHP-FPM là gì, điểm mạnh của PHP-FPM là gì và điểm yếu của PHP-FPM là gì. Ngoài ra, bạn còn biết được cách thiết lập PHP-FPM và Nginx. Cảm ơn các bạn đã theo dõi. Chúc các bạn thành công!!

 

XEM THÊM:

Hướng dẫn chạy PHP trên XAMPP chi tiết [2021]

[Hướng dẫn] Fix lỗi 403 Forbidden Nginx đơn giản cho website 2021

API PHP là gì? Những đặc điểm cơ bản của API

10 PHP Framework tốt nhất để lập trình web 2020

 

ATPWEB – XÂY DỰNG NGÔI NHÀ ONLINE

Liên hệ:

Đánh giá bài viết post

Leave a Comment

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

LIÊN HỆ TƯ VẤN

Thiết Kế Web
BLOG
Đăng ký tư vấn
Thiết kế website
Đồng hành cùng ATP WEB

Đăng ký tư vấn Thiết kế website