PHP-FPM là gì? Cấu hình PHP-FPM như thế nào?
Thịnh Văn Hạnh 16/03/2020 1703 Lượt xem Chia sẻ bài viết
PHP là một trong những ngôn ngữ lập trình phát triển và được nhiều người lựa chọn. Rất nhiều nhà cung cấp dịch vụ cho thuê server đã tích hợp PHP-FPM vào server của mình. Việc làm này nhằm mục đích tăng khả năng bảo mật, tạo sự ổn định và nâng cao hiệu suất cho website. Hãy cùng BKNS tìm hiểu PHP-FPM là gì? Nó có ưu nhược điểm gì? Cấu hình PHP-FPM như thế nào?
Tóm Tắt Bài Viết
PHP-FPM là gì?
PHP là ngôn ngữ lập trình mã nguồn mở, được dùng để viết cho server hay các mục đích tổng quát khác. Ngôn ngữ lập trình này có cú pháp 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 với các ngôn ngữ lập trình khác.
PHP-FPM là một chương trình có tính 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ó khả năng tối ưu quá trình xử lý thông tin của web server và hỗ trợ xử lý thông tin nhanh nhất từ các website khác nhau, trong cùng một khoảng thời gian. PHP-FPM được đông đảo người dùng lựa chọn bởi tốc độ xử lý PHP script nhanh, tăng lượng truy cập và khả năng tối ưu hóa cho những website có kích thước lớn.
Ưu nhược điểm của PHP-FPM
Ưu điểm của PHP-FPM
- Tính bảo mật, độ ổn định và hiệu suất mà PHP-FPM mang lại cao hơn nhiều so với CGI
- Được sử dụng rộng rãi nhất là khi khai thác tài nguyên CPU để chạy chương trình (tốn ít tài nguyên CPU)
- Giúp tăng tốc độ tải trang và việc truy cập website của người dùng trở nên dễ dàng, nhanh chóng hơn. Theo đó, lưu lượng truy cập website cũng sẽ tăng lên đáng kể
Nhược điểm của PHP-FPM
- Tiêu tốn dung lượng lớn của bộ RAM
So sánh PHP-FPM với CGI
Ưu điểm của CGI so với PHP-FPM là gì?
CGI là một cái tên quen thuộc trong số các ngôn ngữ lập trình hiện nay. Đây được xem như công cụ đầu tiên được sử dụng để tạo ra các trang web động. Có thể xem CGI như một giao thức có chức năng kết nối máy chủ với các chương trình bên ngoài.
Một ưu điểm vượt trội của CGI là có thể chạy độc lập trên máy chủ sử dụng bất kỳ ngôn ngữ nào. Từ Python, Tcl, C/C + + đến cả Java (chạy PHP dưới quyền truy cập user ‘nobody’)
Nhược điểm của CGI so với PHP-FPM là gì?
Tuy nhiên, khuyết điểm lớn nhất của CGI khiến cho phần mềm này ngày càng mất đi vị thế của nó trên thị trường nằm ở hiệu suất thấp. Theo đó, khi sử dụng CGI, khi có yêu cầu truy cập trang web động, chương trình này sẽ thực hiện khởi tạo tiến trình mới. Điều này dẫn đến việc tiêu tốn tài nguyên CPU cũng như làm giảm tốc độ truy cập web.
Tuy nhiên, các lập trình viên đã có thể khắc phục tình trạng này bằng cách tích hợp sẵn khả năng xử lý tạo nội dung web động, bên cạnh đó người dùng cũng có thể sử dụng các module hỗ trợ khác kèm theo khi kết nối với máy chủ web.
Các bước cấu hình PHP-FPM
Bước 1: Tại mục /etc/php=fpm.d mở file cấu hình của PHP-FPM
Bước 2: Điều chỉnh đường dẫn file sock:
user = site group = site request_slowlog_timeout = 5s slowlog = /var/log/php-fpm/slowlog-site.log listen.allowed_clients = 127.0.0.1 pm = dynamic pm.max_children = 5 pm.start_servers = 3 pm.min_spare_servers = 2 pm.max_spare_servers = 4 pm.max_requests = 200 listen.backlog = -1 pm.status_path = /status request_terminate_timeout = 120s rlimit_files = 131072 rlimit_core = unlimited catch_workers_output = yes env[HOSTNAME] = $HOSTNAME env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp
Bước 3: Xác định các thông số:
(1) pm.max_children = Số Process con tối đa được tạo
(2) pm.min_spare_servers = Tổng số Child Process nhàn rỗi tối thiểu được duy trì
(3) pm.start_servers = Tổng số Child Process được tạo khi khởi động PHP-FPM
(4) 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
Shared Hosting là dịch vụ lưu trữ website trên server có kết nối internet. Tại đây, mỗi website sẽ có một vùng riêng biệt. Đối với những người muốn chia sẻ tổng chi phí thuê và bảo trì máy chủ thì Shared Hosting là một lựa chọn phù hợp.
Trong môi trường Shared Hosting, việc bảo mật PHP-FPM/Nginx là điều vô cùng cần thiết. Khi truy cập website PHP, bạn cần thiết lập 1 Pool cho từng website. Mục đích của việc làm này là để các script PHP thực thi như 1 hay 1 nhóm người dùng trong đó. Tạo Pool có vai trò quan trọng trong quá trình bảo mật và đảm bảo cho việc sử dụng được thuận lợi hơn.
Kết luận
Bài viết đã giúp bạn có được đáp án cho câu hỏi PHP-FPM là gì? Đồng thời, thông qua bài viết bạn cũng biết được ưu nhược điểm và các bước cấu hình PHP-FPM. Nếu còn bất cứ thắc mắc gì, đừng ngại để lại comment bên dưới để được giải đáp.
Đừng quên, BKNS là đơn vị cung cấp các dịch vụ tên miền, hosting giá rẻ, email, chứng chỉ SSL, Vps, cho thuê Server, thiết kế web chuyên nghiệp. Bạn có thể liên hệ với BKNS qua số điện thoại 1900.63.68.09 hoặc “kinhdoanh@bkns.vn” khi có nhu cầu.