Tổng quan LEMP. Hướng dẫn cài đặt LEMP trên Linux
1. LEMP stack là gì?
Đầu tiên, chắc các bạn đều thắc mắc LEMP là gì? LEMP là tên viết tắt của 4 chữ cái đầu Linux, Nginx, Maria DB, PHP. (Nginx được đọc là "engine-x", giải thích cho chữ E trong "LEPM")
Các thành phần cấu thành LEMP stack cũng gần tương tự với LAMP, chỉ khác là Apache sẽ được thay thế bởi nginx. Nginx cũng là một ứng dụng HTTP proxy nhưng không có được danh tiếng ấn tượng như Apache, tuy nhiên, nó có ưu điểm là cho phép xử lý tốc độ tải cao hơn đối với các HTTP request.
Nginx giờ đây, đã đạt được sự thu hút đáng kể đối với người dùng khi nó bắt đầu được nhiều người sử dụng từ năm 2008 và hiện trở thành ứng dụng web server tiếng tăm thứ 2 sau Apache khi đề cập các active site theo báo cáo của Netcraft.
Tổng quan về LEMP stack, phân biệt và hướng dẫn cài đặt trên server
Như đã nói, LEMP stack sử dụng nginx, sau đây chúng ta cùng tìm hiểu nginx là gì?
Nginx:
- Ứng dụng web server mã nguồn mở được viết để giải quyết các vấn đề về hiệu suất và khả năng mở rộng có liên quan đến Apache.
- Phương pháp Event-driven, không đồng bộ và không bị chặn, không tạo các process mới cho mỗi request từ web.
- Đặt số lượng cho các worker process và mỗi worker có thể xử lý hàng nghìn kết nối đồng thời
- Các module sẽ được chèn vào trong thời gian biên dịch, có trình biên dịch mã PHP bên trong (không cần đến module PHP).
Để kết luận thì nginx nhanh hơn và có khả năng xử lý tải cao hơn nhiều so với Apache khi sử dụng cùng một bộ phần cứng.
2. Cách thức triển khai LEMP trên server
Triển khai LEMP trên Ubuntu:
Lưu ý trước khi bạn thực hiện quy trình
- Bạn sẽ cần quyền truy cập root vào hệ thống hoặc tài khoản người dùng cấp quyền sudo.
- Khởi động hostname trên hệ thống
- Update hệ thống
Cài đặt:
- Nginx:
Cài đặt Nginx
sudo apt updatesudo apt install nginx
Đảm bảo NGINX đang chạy và sẽ tự động bật khi khởi động lại:
sudo systemctl start nginxsudo systemctl enable nginx
- MariaDB
Cài đặt MariaDB server và các hỗ trợ MySQL / MariaDB-PHP. Bạn có thể sẽ được nhắc phải đặt mật khẩu gốc trong khi cài đặt.
sudo apt install mariadb-server php7.0-mysql
Chạy mysql_secure_installation script:
sudo mysql_secure_installation
Nếu bạn không được nhắc tạo mật khẩu người dùng gốc MySQL khi cài đặt MariaDB, hãy trả lời tập lệnh Y để đặt mật khẩu.
Trả lời Y với các lời nhắc sau:
Remove anonymous users?Disallow root login remotely?Remove test database and access to it?Reload privilege tables now?
Đăng nhập vào shell SQL của MariaDB. Nhập mật khẩu người dùng gôc khi được nhắc.
mysql -u root -p
Tạo test database và người dùng có quyền truy cập. Thay thế testdb và testuser bằng các tên thích hợp. Thay thế mật khẩu bằng một mật khẩu mạnh.
CREATE DATABASE testdb;CREATE USER 'testuser' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';Quit
- PHP:
Cài đặt FastCGI PHP Processing Manager, nó sẽ mang lại các dependencies PHP cốt lõi:
sudo apt install php7.0-fpm
Yêu cầu PHP chỉ chấp nhận URI cho các tệp thực sự tồn tại trên server. Điều này giảm thiểu một lỗ hổng bảo mật trong đó trình biên dịch PHP có thể nhầm lẫn và cho phép thực thi mã tùy ý nếu tệp .php được yêu cầu không có trong hệ thống tệp.
sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/7.0/fpm/php.ini
- Đặt tệp cấu hình trang NGINX
Tạo thư mục gốc nơi nội dung web sẽ hiển thị. Thay thế example.com bằng tên miền website.
sudo mkdir -p /var/www/example.com/
Tắt cấu hình trang mặc định dùng làm ví dụ được cho cùng với package. Trong trường hợp không sử dụng, bạn có thể delete.
Các tệp cấu hình website phải được đặt trong /etc/nginx/conf.d/. Tạo 1 tệp cấu hình cho trang của bạn. Một lần nữa thay thế example.com bằng tên miền của website.
/etc/nginx/conf.d/example.com.conf
- Test LEMP stack
Restart PHP và tải lại cấu hình NGINX- Test LEMP stack
sudo systemctl restart php7.0-fpmsudo nginx -s reload
Tạo một test page để xác minh NGINX có thể hiển thị PHP và kết nối với cơ sở dữ liệu MySQL hay không. Thay thế trường "testuser" và "password" bằng thông tin đăng nhập MySQL đã tạo ở trên.
/var/www/example.com/test.php
Truy cập http://example.com/test.php trên trình duyệt web. Sẽ có thông báo hiển thị như sau: "You have connected successfully" có nghĩa là bạn đã kết nối thành công. Nếu thấy thông báo lỗi hoặc trang không tải được, kiểm tra lại cấu hình.
Xóa test file khi stack đã xác minh xong để hệ thống hoạt động chính xác.
sudo rm /var/www/example.com/test.phpsudo apt-get update
Triển khai LEMP stack tự động:
Với các bước triển khai cơ bản trên, bạn hoàn toàn có thể thiết lập một LEMP stack trên server của mình để sử dụng. Tuy nhiên, quá trình cài đặt này cũng thường khá phức tạp, tốn nhiều thời gian và hay xảy ra lỗi. Sẽ mất khá nhiều thời gian, công sức để người dùng tìm và fix lỗi trong những trường hợp như thế này. Để có thể nhanh chóng xử lý lỗi bạn có thể tham khảo video tôi đã thực hiện trên VPS Linux.
Nguồn: Internet
Link tham khảo:
Hướng dẫn cài đặt Lemp trên Vps Linux
Chúc các bạn thành công !


Nhận xét
Đăng nhận xét