SOHOA24H.NET

LEMP [Phần 1] – Cài đặt NGINX và PHP-FPM

sohoa24h.net – Với sự bủng nổ và số lượng người dùng NGINX không ngừng tăng thì hiện nay NGINX ngày càng trở nên phổ biến rộng rãi không kém phần Apache, do đó nếu bây giờ bạn sử dụng NGINX thì cũng không khó để tìm các bài hướng dẫn cấu hình chi tiết.

Ở bài này, mình sẽ hướng dẫn qua cho bạn cách cài đặt NGINX để làm Webserver và các cấu hình cần thiết. Hãy nên nhớ, serie này mình sẽ hướng dẫn 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.

Mục lục nội dung

I. Tại sao NGINX lại nhanh hơn Apache?

II. Nạp package cần thiết

III. Cài đặt NGINX và PHP-FPM

IV. Thiết lập lại user và group chạy PHP

I. Tại sao 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.

nginx-worker-process

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ỳ.

Còn rất nhiều nữa nhưng có thể trong bài này mình không thể nhắc qua hết mà mình chỉ cần bạn biết tại sao NGINX lại mạnh hơn Apache mà thôi.

Xem thêm: How is NGINX different from Apache.

II. 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.5 trở lên nên bạn cần có một VPS sử dụng CentOS 6.5 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 1.6.2 và PHP/PHP-FPM mới nhất.

Bạn chạy lần lượt 2 lệnh sau:

# 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:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

Nếu bạn muốn dùng NGINX bản mới nhất thì dùng đoạn dưới:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

III. 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:

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:

yum --enablerepo=remi,remi-php56 install nginx php-fpm php-mysql php-common php-mbstring php-mcrypt php-gd

Lưu ý thêm là nếu sau này bạn cần cài thêm công cụ gì thì tốt nhất nên chạy lệnh yum làyum --enablerepo=remi,remi-php56 để được cài nhiều chức năng hơn, phiên bản mới hơn và tương thích với PHP 5.6

Một số tên ứng dụng có thể bạn muốn cài đặt

– php-pecl-memcached – Memcached Server

– php-pecl-memcache – extension chạy Memcached dành cho PHP

– php-opcache – Zend Opcache

– apcu – APC Opcode Cache

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):

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:

nginx -v
php-fpm -v

Mặc định CentOS đã chặn cổng 80 nên bạn cần chạy 2 lệnh dưới đây để mở cổng 80 của webserver ra:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
service iptables save
service iptables restart

Bây giờ bạn hãy truy cập vào địa chỉ là http://ip rồi xem nó đã hiện trang Welcome của NGINX chưa nhé. Nếu hiện như ở dưới thì thành công:

Trang Welcome của NGINX
Trang Welcome của NGINX

IV. 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:

user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache

Thay thành

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

service php-fpm restart

Nếu bạn cần cách thiết lập từng user riêng theo domain thì mình đã hướng dẫn ở phần 7.

Tạm thời bài này chúng ta kết thúc ở đây, ở bài tiếp theo chúng ta sẽ đi vào bước tạo Virtual Host – hay còn gọi là thêm domain vào Linux đó.

Chỉnh sửa : Ping

Nguồn : Web

Lượt xem: 647

Vài Nét Về Tác Giả "Ping"

Tôi đam mê công nghệ nhất là về mảng Network và System . Tôi thích tìm hiểu học hỏi chuyên sâu về Linux và Windows . Sau vài năm làm việc ngoài bôn ba , tôi đã cùng 2 anh chị thân lập nên web sohoa24h.net để chia sẻ kinh nghiệm kiến thức tới những ai đam mê IT .

Gửi Phản Hồi