LAMP Webserver (Linux + Apache + MySQL + PHP) là loại Webserver phổ biến nhất trên hiện tại. Tuy nhiên thực tế đã chứng minh LEMP Webserver (Linux + NGINX + MariaDB + PHP) có hiệu suất sử dụng cao hơn LAMP rất nhiều, chỉ tội hơi khó cấu hình dành cho người mới. Chính vì thế mới có serie này nhằm để hỗ trợ các bạn cách cài đặt một LEMP Webserver từ A tới Z theo cách dễ hiểu, dễ làm nhất. Chú ý là sử dụng NGINX làm Webserver chứ không phải Proxy Server để kết hợp với Apache nên mong bạn đừng lẫn lộn.
Bạn cần chuẩn bị gì
Để theo được serie này tốt, bạn nên chuẩn bị cho mình một VPS với cấu hình như sau:
- CentOS 6 64bit hoặc 32bit
- VPS chưa được cài đặt gì cả
- Tài khoản root của VPS
NGINX lại nhanh hơn Apache?
Hầu hết các Webserver hiện nay đều xử lý các truy vấn từ máy khách đến máy chủ bằng các thread (bạn cứ hiểu thread là một cỗ máy giúp nó xử lý truy vấn), và mỗi truy vấn khách sẽ được server xử lý bằng một thread riêng biệt cho đến khi nó hoàn thành nhiệm vụ. Do đó, ổ cứng trên server sẽ mất nhiều thời gian hơn để giải phóng các thread đã hoàn thành nhiệm vụ, và việc tạo ra nhiều thread cũng sẽ làm server tiêu hao rất nhiều tài nguyên (CPU, RAM).
NGINX sinh ra là để khắc phục nhược điểm đó, nó không phụ thuộc vào số lượng thread trên server mà bạn sẽ có quyền phân chia tổng số thread trên server ra số lượng worker processes tùy thích và các worker processes này sẽ lặp lại quá trình trong mỗi truy vấn gửi tới server mà không cần máy chủ tạo ra thread riêng.
Các worker cũng không thể tốn nhiều tài nguyên để xử lý và nó cũng không tự chặn lẫn nhau như Apache để giải phóng bộ nhớ vì nó sử dụng kỹ thuật Tải không đồng bộ (Asynchronous). Nghĩa là nó sẽ được xử lý luân phiên nhau theo một chu kỳ.
1. Nạp package cần thiết
Đầu tiên bạn hãy nhớ rằng, serie này mình viết dành cho hệ điều hành CentOS 6 trở lên nên bạn cần có một VPS sử dụng CentOS 6 và chưa cài bất cứ cái gì vào.
Do cả NGINX và PHP-FPM đều không có sẵn trong gói Yum mặc định của CentOS nên chúng ta phải nạp một package từ bên ngoài vào.
Với package này bạn sẽ cài được NGINX và PHP/PHP-FPM mới nhất.
Tùy theo phiên bản CentOs mà bạn đang sử dụng bạn chạy 1 trong 2 lệnh sau:
01
02
03
04
05
06
07
|
# CentOS 32-Bit rpm -Uvh http: //download .fedoraproject.org /pub/epel/6/i386/epel-release-6-8 .noarch.rpm rpm -Uvh http: //rpms .famillecollet.com /enterprise/remi-release-6 .rpm # CentOS 64-Bit rpm -Uvh http: //download .fedoraproject.org /pub/epel/6/x86_64/epel-release-6-8 .noarch.rpm rpm -Uvh http: //rpms .famillecollet.com /enterprise/remi-release-6 .rpm |
Sau đó tạo 1 file tên là nginx.repo trong thư mục /etc/yum.repos.d/ rồi copy đoạn dưới đây vào:
01
02
03
04
05
06
07
|
cat > /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=0 enabled=1 Ctrl +D để thoát |
Cài đặt NGINX và PHP-FPM
Trước khi cài đặt, hãy tiến hành tắt SELinux đi bằng cách mở file /etc/sysconfig/selinux và tìm SELINUX=
rồi sửa thành như dưới đây:
01
|
SELINUX=disabled |
Sửa xong, hãy gõ lệnh reboot
để khởi động lại máy chủ và đăng nhập vào lại SSH.
Sau đó là cài NGINX và PHP cùng các module cần thiết:
01
|
yum --enablerepo=remi,remi-php71 install nginx php-fpm php-mysql php-common php-mbstring php-mcrypt php-gd |
Kích hoạt NGINX, PHP và thêm 2 ứng dụng này vào danh sách ứng dụng tự khởi động nếu reboot server (gõ lần lượt các lệnh):
01
02
03
04
|
service nginx start service php-fpm start chkconfig php-fpm on chkconfig nginx on |
Kiểm tra phiên bản NGINX và PHP-FPM:
01
02
|
nginx - v php-fpm - v |
Thiết lập lại user và group chạy PHP
Mặc định PHP-FPM sẽ chỉ định user tên là apache và group tên apache để chạy nó, nhưng ở đây chúng ta không sử dụng Apache mà là NGINX nên bạn cần mở file /etc/php-fpm.d/www.conf lên và tìm:
01
02
03
|
user = apache ; RPM: Keep a group allowed to write in log dir. group = apache |
Thay thành
01
02
03
|
user = nginx ; RPM: Keep a group allowed to write in log dir. group = nginx |
Lưu lại và khởi động lại PHP-FPM
01
|
service php-fpm restart |
Coi thêm ở : Cài đặt LEM Webserver (Linux + NGINX + MariaDB + PHP)
Không có nhận xét nào:
Đăng nhận xét