Mục lục [Ẩn]
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 Nhân Hòa tìm hiểu PHP-FPM là gì và ưu nhược điểm của nó như thế nào nhé!
1. 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 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 ngôn ngữ lập trình khác.
PHP-FPM là gì?
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.
>>> Xem thêm: Javascript là gì? Tại sao Javascript được gọi là NGÔN NGỮ CỦA TƯƠNG LAI?
2. CGI và FastCGI là gì?
- CGI là viết tắt của Common Gateway Interface là một phần mềm lập trình có chức năng kết nối giữa máy chủ và chương trình, dựa trên các định dạng đặc tả thông tin. Bên cạnh đó, phần mềm lập trình CGI còn có nhiệm vụ xây dựng chương trình từ các trang Web. Sau khi nhận dữ liệu từ các trang web dưới định dạng HTML, phần mềm này sẽ truyền dữ liệu đó qua cổng thông tin Internet đến máy tính của người dùng
CGI và FastCGI là gì?
- FastCGI là một giao thức phát triển mở rộng từ CGI. Mục đích chính của FastCGI là để web server tối ưu trong việc xử lý. Đồng thời giúp máy chủ có thể xử lý nhiều yêu cầu từ trang web trong cùng một lúc. FastCGI sẽ chạy ít tốn tài nguyên CPU hơn và đạt tốc độ gần bằng DSO. FastCGI sử dụng được opcode cacher như eAccelerator để load web nhanh hơn
3. Các loại PHP Handler khác
- DSO là gì?
DSO được biết như là mod_php và là một phiên bản cấu hình cũ của PHP Handler. Tuy nhiên DSO lại là Handler nhanh nhất. Nó chạy PHP như một Apache Module. Điều đó có nghĩa là các PHP Script sẽ chạy dưới quyền của Apache user. Đó là user ‘nobody’
Nhược điểm của DSO:
Tất cả file được tạo ra từ PHP script sẽ được sở hữu bởi user ‘nobody’. Nó sẽ không có khả năng đọc được từ web. Điều này khá phổ biến với người dùng WordPress. Nếu họ dùng tính năng upload file thông qua WordPress Interface hay dùng tính năng auto update thì sẽ bị fail với DSO.Vấn đề bảo mật: Điều này nằm ở việc tạo file sẽ dưới danh nghĩa người dùng ‘nobody’. Sẽ ra sao nếu một hacker tìm được một lỗ hổng trong PHP script? Họ có thể thực thi một file cùng một quyền hạn như những file hệ thống mà được đánh dấu sở hữu là ‘nobody’. Điều này làm hacker có khả năng chỉnh sửa các file hệ thống khác. Để chống lại điều này thì phải thường xuyên update PHP lên các phiên bản mới nhất
Các loại PHP Handler khác
- SuPHP là gì?
Ưu điểm của suPHP:
Khi bạn sử dụng công cụ upload file lên website của bạn, các file này sẽ được phân đúng quyền hạn của user đó. Upload và một vài tính năng khác của WordPress không hoạt động nếu không sử dụng suPHP hoặc FastCGI SuPHP cũng cung cấp một lợi thế bảo mật hơn là DSO hay CGI. Tất cả những PHP Scripts không thuộc một user cụ thể nào đó sẽ không thể thực thi được. Hoặc user này sẽ không thể nào thực thi được các PHP Scripts của user khác. Khi một tài khoản nào đó bị đánh cắp, các scripts cũng không thể nào lây lan sang các tài khoản khác được
Nhược điểm của suPHP:
Sử dụng CPU cao.Bạn không thể sử dụng Opcode Cache (như xCache) với suPHP.Khi sử dụng suPHP nếu CPU load cao bạn có thể chuyển lại dùng DSO hoặc FastCGI
>>> Xem thêm: Apache Tomcat là gì? [BÍ KÍP] Cài đặt Apache Tomcat nhanh chóng và chuyên nghiệp
4. Ưu điểm và nhược điểm của PHP-FPM
- Ưu điểm
+ 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 web 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ể
Ưu điểm và nhược điểm của PHP-FPM
- Nhược điểm
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
>>> Xem thêm: CPU là gì? Bật mí CPU [HOT NHẤT] trên thị trường hiện nay
5. Hướng dẫn cài đặt PHP-FPM trên CentOS 7
Bước 1: Để cài đặt cấu hình PHP-FPM, người dùng mở file cấu hình của PHP-FPM tại mục /etc/php-fpm.d.
Bước 2: Điều chỉnh đường dẫn file sock theo công thức:
listen = /var/run/php-fpm/php-fpm.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
Hướng dẫn cài đặt PHP-FPM trên CentOS 7
Bước 3: Xá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 tạo (tương đương 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ì
6. Lời kết
Trên thị trường ngày nay, có rất nhiều các ngôn ngữ lập trình khác nhau, tùy theo nhu cầu sử dụng cũng như cấu hình máy mà người dùng cần có sự lựa chọn sao cho phù hợp và đạt hiệu quả tối ưu nhất. Với PHP-FPM, việc giải bài toán “phiên dịch” ngôn ngữ và tốc độ tải trang đã không còn là việc quá xa vời. Đó là lý do vì sao các nhà cung cấp dịch vụ cho thuê máy chủ hiện nay đều tích hợp PHP-FPM vào server của mình. Qua bài viết trên, hy vọng các bạn có thể rút ra cho mình những kiến thức cần thiết về PHP-FPM cũng như những thủ thuật nhằm tối ưu hoá trang web của mình dựa trên phần mềm này.
Quý khách hàng có nhu cầu đăng ký tên miền, đăng ký email doanh nghiệp, hosting wordpress giá rẻ, vps, ssl... xin vui lòng đăng ký tại Nhân Hòa để được hưởng ưu đãi giá rẻ nhất. Trân trọng!
+ Fanpage: https://www.facebook.com/nhanhoacom
+ Chỉ đường: https://g.page/nhanhoacom
+ Chương trình khuyến mãi mới nhất: https://nhanhoa.com/khuyen-mai.html
————————————————————
CÔNG TY TNHH PHẦN MỀM NHÂN HÒA
Hotline: 1900 6680
Trụ sở chính: Tầng 4 - Tòa nhà 97-99 Láng Hạ, Đống Đa, Hà Nội
Tel: (024) 7308 6680 – Email: sales@nhanhoa.com
Chi nhánh: 270 Cao Thắng (nối dài), Phường 12, Quận 10, Tp.HCM
Tel: (028) 7308 6680 – Email: hcmsales@nhanhoa.com