Tổng quan về LAMP/LEMP stack, phân biệt và hướng dẫn cài đặt trên server

Chúng tôi rất vui mừng chia sẻ kiến thức về từ khóa Lamp stack la gi để tối ưu hóa nội dung trang web và chiến dịch tiếp thị trực tuyến. Bài viết cung cấp phương pháp tìm kiếm, phân tích và lựa chọn từ khóa phù hợp, cùng với chiến lược và công cụ hữu ích. Hy vọng thông tin này sẽ giúp bạn xây dựng chiến lược thành công và thu hút lưu lượng người dùng. Cảm ơn sự quan tâm và hãy tiếp tục theo dõi blog để cập nhật kiến thức mới nhất.

LAMP stack là nền tảng của khá nhiều hosting website sử dụng chủ yếu Linux. LAMP stack là giải pháp sever linh hoạt, được phối hợp từ 4 lớp giải pháp phần mềm riêng lẻ. Hãy cùng Bizfly Cloud tìm hiểu tổng quan về LAMP/LEMP stack thông qua nội dung bài viết sau đây.

Bạn Đang Xem: Tổng quan về LAMP/LEMP stack, phân biệt và hướng dẫn cài đặt trên server

Tổng quan về LAMP/LEMP stack

LAMP stack là gì?

LAMP là viết tắt của Linux, Apache, MySQL và PHP. Các thành phần này, được sắp xếp theo những lớp tương trợ lẫn nhau, tạo thành các stack phần mềm. Các website và ứng dụng web chạy trên nền tảng của khá nhiều stack cơ bản này.

Linux: là lớp trước nhất trong stack. Hệ điều hành này là cơ sở nền tảng cho những lớp phần mềm khác.

Apache: Lớp thứ hai gồm có phần mềm web server, thường là Apache Web (HTTP) Server. Lớp này nằm trên lớp Linux. Web server chịu trách nhiệm chuyển đổi các web browser sang các website xác thực của chúng. Apache đã (và vẫn) là ứng dụng web server phổ quát nhất trên public Internet hiện nay. Trên thực tế, Apache được ghi nhận là đóng một vai trò quan trọng trong sự phát triển thuở đầu của World Wide Web.

MySQL: Lớp thứ ba là nơi cơ sở tài liệu database được lưu trữ. MySQL lưu trữ các rõ ràng có thể được truy vấn bằng script để xây dựng một website. MySQL thường nằm trên Linux và cùng với Apache / lớp 2. Trong cấu hình highend, MySQL có thể được off load xuống 1 sever lưu trữ riêng biệt.

PHP: là lớp trên cùng của stack. Lớp script gồm có PHP và / hoặc các tiếng nói lập trình web tương tự khác. Các website và ứng dụng web chạy trong lớp này.

Hồ hết các Developer nên biết về LAMP stack truyền thống vì nó đã được sử dụng làm web từ rất mất thời gian rồi. Tất cả những công nghệ backend như PHP và Mysql thường rất phổ quát và được tương trợ bởi các nhà cung cấp hosting lớn. Do đó, ưu điểm lớn số 1 của LAMP stack là bảo mật thông tin và sự tương trợ rộng rãi. Các CMS phổ quát nhất như WordPress, Joomla, Drupal.. đều được phát triển trên nền PHP và Mysql.

Cả Apache, PHP và Mysql đều phải có mã nguồn mở, đó là lý do vì sao Linux là lớp nền tảng cho môi trường xung quanh này. Đó cũng là môi trường xung quanh đơn giản nhất để các developer làm web trực tuyến.

LEMP stack là gì?

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ẽ tiến hành thay thế bởi nginx. Nginx được đọc là “engine-x”, giảng giải cho chữ E trong “LEPM”, nginx cũng là một ứng dụng HTTP proxy nhưng không đã có được tiếng tăm tuyệt hảo như Apache, tuy nhiên, nó có ưu điểm là được chấp nhận xử lý tốc độ tải cao hơn nữa khi đối chiếu với các HTTP request.

Nginx giờ đây, đã đạt được sự thu hút đáng kể khi đối chiếu với người dùng khi nó khai mạc được nhiều người sử dụng từ thời điểm năm 2008 và hiện trở thành ứng dụng web server tiếng tăm thứ hai sau Apache khi đề cập các active site theo giải trình của Netcraft.

2. Phân biệt LEMP và LAMP Stack

Như đã nói, khác biệt cơ bản giữa LAMP và LEMP stack là ở cả hai thành phần Apache và Nginx. Vậy việc sử dụng nginx và Apache sẽ tạo ra những khác biệt gì? Tất cả chúng ta sẽ cùng so sánh riêng 2 phần mềm này để thấy được rõ hơn sự khác biệt:

Apache:

– Apache đã được sử dụng từ lâu (từ trong thời gian 1995), có rất nhiều các module được viết và khắp cơ thể dùng tham gia vào mở rộng hệ chức năng cho Apache.

– Phương pháp process/thread-oriented – sẽ khai mạc chậm lại khi xuất hiện tải nặng, cần tạo ra các quy trình mới dẫn đến tiêu thụ nhiều RAM hơn, không chỉ có thế, cũng tạo ra các thread mới cạnh tranh các tài nguyên CPU và RAM;

– Giới hạn phải được thiết lập để đảm nói rằng tài nguyên không bị quá tải, khi đạt đến giới hạn, các kết nối bổ sung sẽ bị từ chối;

– Yếu tố hạn chế trong kiểm soát và điều chỉnh Apache: bộ nhớ và thế vị cho những dead-locked threads cạnh tranh cho cùng một CPU và bộ nhớ.

Nginx:

– Ứng dụng web server mã nguồn mở được viết để giải quyết và xử lý 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 Sự kiện-driven, không đồng bộ và không bị chặn, không tạo các process mới cho từng request từ web.

– Đặt số lượng cho những worker process và mỗi worker có thể xử lý hàng nghìn kết nối song song

– Các module sẽ tiến hành chèn vào trong thời kì biên dịch, có trình biên dịch mã PHP bên trong (không cần đến module PHP).

Để Tóm lại thì nginx nhanh hơn và có khả năng xử lý tải cao hơn nữa nhiều so với Apache khi sử dụng cùng một bộ phần cứng. Tuy nhiên, Apache vẫn là tốt hơn nhiều khi nói đến chức năng và tính sẵn sàng của khá nhiều module cấp thiết để thao tác với những ứng dụng sever back-end và chạy các tiếng nói kịch bản lệnh. Vậy nên việc lựa chọn sẽ phụ thuộc phần lớn vào những gì bạn muốn chạy trên web server của mình. Việc chạy cả Apache và nginx trên cùng một sever vẫn có khả năng thực hiện được, và nó sẽ giúp người dùng đã có được lợi ích tốt nhất từ cả hai phương pháp. Ví dụ, chúng ta cũng có thể chạy nginx như reverse proxy trong những lúc để Apache chạy trong back-end.

3. Phương pháp triển khai LEMP/LAMP trên server (tự build)

Triển khai LEMP trên Ubuntu:

Lưu ý trước khi chúng ta thực hiện quy trình

– Các bạn sẽ cần quyền truy cập root vào mạng lưới hệ thống hoặc tài khoản người dùng cấp quyền sudo.

– Phát động hostname trên mạng lưới hệ thống

– Update mạng lưới hệ thống

Cấu hình thiết lập:

– Nginx:

Các bước này giúp thiết lập NGINX Mainline trên Ubuntu từ repository chính thức của NGINX Inc.

Mở /etc/apt/sources.list trong text editor và thêm dòng sau vào thời điểm cuối. Thay thế CODENAME trong ví dụ này bằng tên mã của bản phát hành Ubuntu bạn sử dụng. Ví dụ, khi đối chiếu với Ubuntu 18.04, mang tên Bionic Beaver, chèn bionic vào vị trí của CODENAME phía bên dưới:

/etc/apt/sources.list

1

deb http://nginx.org/packages/mainline/ubuntu/ CODENAME nginx

Import các package signing key trong repository và thêm vào apt:

sudo wget http://nginx.org/keys/nginx_signing.key

sudo apt-key add nginx_signing.key

Cấu hình thiết lập Nginx

Xem Thêm : Tính từ là gì trong tiếng việt ? Cho ví dụ minh họa ? Ngữ văn lớp 4, lớp 5, lớp 6

sudo apt update

sudo apt install nginx

Đảm bảo NGINX đang làm việc và sẽ tự động hóa bật khi phát động lại:

sudo systemctl start nginx

sudo systemctl enable nginx

– MariaDB

Cấu hình thiết lập MariaDB server và các tương trợ MySQL / MariaDB-PHP. Chúng ta có thể sẽ tiến hành nhắc phải kê mật khẩu gốc trong những lúc thiết lập.

sudo apt install mariadb-server php7.0-mysql

Chạymysql_secure_installation script:

sudo mysql_secure_installation

Nếu như bạn không được nhắc tạo mật khẩu người dùng gốc MySQL khi thiết lập MariaDB, hãy trả lời tập lệnh Y để tại vị mật khẩu.

Trả lời Y với những 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ấu hình thiết lập 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ỉ gật đầu đồng ý URI cho những 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 thông tin trong đó trình biên dịch PHP có thể nhầm lẫn và được chấp nhận thực thi mã tùy ý nếu tệp .php được yêu cầu không có trong mạng lưới 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

Quyền sở hữu ổ cắm listen UNIX của PHP được đặt thành www-data theo mặc định, nhưng chúng cần khớp với những người dùng và nhóm NGINX đang làm việc. Nếu như bạn đã thiết lập NGINX từ NGINX reposity như đã làm ở trên, NGINX sẽ sử dụng nginx user và nhóm nginx. Thay đổi các biến listen trong www.conf thành:

sudo sed -i ‘s/listen.owner = www-data/listen.owner = nginx/g’ /etc/php/7.0/fpm/pool.d/www.conf

sudo sed -i ‘s/listen.group = www-data/listen.group = nginx/g’ /etc/php/7.0/fpm/pool.d/www.conf

– Đặ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, chúng ta cũng 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

Xem Thêm : Cơ sở chi phí (Cost basis) là gì? Đặc điểm

sudo systemctl restart php7.0-fpm

sudo 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ở tài liệu MySQL hay là 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ẽ sở hữu thông tin hiển thị như sau: “You have connected successfully” có tức thị bạn đã kết nối thành công. Nếu thấy thông tin 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 để mạng lưới hệ thống hoạt động xác thực.

sudo rm /var/www/example.com/test.phpsudo apt-get update

Triển khai LAMP trên Ubuntu:

– Linux:

Quy trình này giả thiết rằng Ubuntu đã được thiết lập trên máy của bạn. Sau khoản thời gian đã thiết lập và chạy Ubuntu, các bạn sẽ muốn đảm nói rằng mọi thứ trên mạng lưới hệ thống đều trong trạng thái hiện hành. Để thực hiện, hãy mở terminal và nhập vào các lệnh sau:

sudo apt-get update

Kết quả sẽ trông giống như hành lang cửa số sau đây. Lưu ý rằng hành lang cửa số này và các hành lang cửa số tiếp sau sẽ cho thấy kết thúc khi hoàn thành mỗi dòng lệnh, và đây chỉ là một minh họa trong số đó.

sudo apt-get upgrade

Lưu ý: Các bạn sẽ phải gõ xác nhận “yes” khi chạy lệnh “upgrade“.

Lệnh trước nhất sẽ update list các gói và các phiên bản của chúng trên máy tính của bạn mà không nhất thiết phải thực hiện thiết lập. Lệnh thứ hai sẽ thiết lập các gói. Vì lý do này, bạn nên chạy lệnh update trước và sau đó là upgrade.

– Cấu hình thiết lập Apache

Để thiết lập Apache, gõ lệnh sau vào Terminal:

sudo apt-get install apache2

– Cấu hình thiết lập Dependencies

Một bước bổ sung mà bạn cần phải thực hiện để đảm nói rằng Apache và Python phối hợp nhau một cách uyển chuyển: thiết lập tool mang tên là mod_wsgi. Đây là một tool miễn phí để phục vụ các ứng dụng Python từ Apache. Bạn cũng sẽ cần thiết lập gói trợ giúp mang tên là python-setuptools.

Để thiết lập tool và trình trợ giúp, gõ lệnh sau vào Terminal:

sudo apt-get install python-setuptools libapache2-mod-wsgi

Các bạn sẽ cần phải phát động lại Apache server để tải mod_wsgi:

sudo service apache2 restart

– Cấu hình thiết lập MySQL

Để thiết lập MySQL, hãy nhập thông tin sau vào Terminal:

sudo apt-get install mysql-server

Trong quá trình thiết lập MySQL, các bạn sẽ được nhắc để tại vị mật khẩu gốc. Đây là mật khẩu các bạn sẽ sử dụng để thiết lập MySQL. Chúng ta có thể chọn để thiết lập luôn, hoặc để sau cũng được.

Sau khoản thời gian hoàn thành thiết lập, MySQL sẽ tự động hóa phát động. Để đăng nhập vào server, sử dụng lệnh sau (các bạn sẽ được nhắc nhập mật khẩu gốc):

mysql -u root -p

Từ đây, chúng ta cũng có thể khai mạc sử dụng MySQL, thiết lập cơ sở tài liệu và người dùng mới.

– Cấu hình thiết lập Python

Bước cuối cùng là thiết lập Python. Vì lựa chọn hệ điều hành Ubuntu, ta sẽ sở hữu được Python được thiết lập một cách tự động hóa. Nếu như bạn muốn biết phiên bản nào hiện đang rất được thiết lập, chỉ việc gõ lệnh này vào Terminal:

Python

4. Triển khai LEPM/LAMP stack tự động hóa:

Với những 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/LAMP stack trên server của mình để sử dụng. Tuy nhiên, quá trình thiết lập này cũng thường khá phức tạp, tốn nhiều thời kì và hay xẩy ra lỗi. Sẽ mất khá nhiều thời kì, sức lực để người dùng tìm và fix lỗi trong những trường hợp như vậy này.

Tin vui là có một cách đơn giản hơn rất nhiều để thiết lập LAMP/LEMP stack chỉ trong một bước. Với tính năng bổ trợ Pre-build Apps trong sản phẩm Cloud server của BizFly Cloud, thiết lập LAMP/LEMP stack giờ đây vô cùng đơn giản chỉ với một cú click.

Nếu như bạn đã sử dụng Cloud server do BizFly Cloud cung cấp, các bạn sẽ được sử dụng Pre-build Apps hoàn toàn miễn phí, phần mềm DUY NHẤT tại Việt Nam được chấp nhận thiết lập, triển khai ứng dụng tự động hóa trực tiếp trên server.

Theo Bizfly Cloud san sẻ

>> Có thể bạn quan tâm: Tổng quan về BizFly Cloud Pre-built Applications là gì?

You May Also Like

About the Author: v1000