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

Lamp stack là gì

Ngăn xếp đèn là cơ sở để lưu trữ các trang web sử dụng chủ yếu là linux. ngăn xếp đèn là một giải pháp máy chủ linh hoạt kết hợp 4 lớp giải pháp phần mềm riêng biệt. Hãy cùng bizfly cloud tìm hiểu về đèn / lemp stack qua bài viết dưới đây.

Tổng quan về ngăn xếp đèn / lemp

Đèn?

đèn 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 trong các lớp hỗ trợ lẫn nhau, tạo thành một ngăn xếp phần mềm. Các trang web và ứng dụng web chạy trên các ngăn xếp cơ bản này.

linux : là lớp đầu tiên của ngăn xếp. Hệ điều hành là cơ sở cho các lớp phần mềm khác.

apache: Tầng thứ hai bao gồm phần mềm máy chủ web, thường là máy chủ web apache (http). Lớp này nằm trên lớp linux. Máy chủ web chịu trách nhiệm dịch trình duyệt web thành trang web chính xác của nó. apache là (và vẫn là) ứng dụng máy chủ web phổ biến nhất trên internet công cộng 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 ban đầu của World Wide Web.

mysql: Lớp thứ ba là nơi lưu trữ cơ sở dữ liệu cơ sở dữ liệu. mysql lưu trữ các chi tiết có thể được viết theo kịch bản để xây dựng trang web. mysql thường có trên linux cùng với apache / lớp 2. Trong các cấu hình cao cấp, mysql có thể được tải xuống một máy chủ riêng biệt.

php: là lớp trên cùng của ngăn xếp. Các lớp kịch bản bao gồm php và / hoặc các ngôn ngữ lập trình web tương tự khác. Các trang web và ứng dụng web chạy trong lớp này.

Hầu hết các nhà phát triển nên biết về ngăn xếp ánh sáng truyền thống, vì nó đã được sử dụng trên web trong một thời gian dài. Tất cả các công nghệ phụ trợ như php và mysql đều rất phổ biến và được hỗ trợ bởi các nhà cung cấp dịch vụ lưu trữ lớn. Vì vậy, ưu điểm lớn nhất của nhóm đèn là độ an toàn và khả năng hỗ trợ rộng rãi. Các cms phổ biến nhất như wordpress, joomla, drupal được phát triển trên nền tảng php và mysql.

apache, php và mysql đều là mã nguồn mở, đó là lý do tại sao linux là lớp cơ sở của môi trường này. Đây cũng là môi trường dễ dàng nhất để các nhà phát triển tạo ra các trang web.

ngăn xếp lemp?

Các thành phần tạo nên ngăn xếp lemp tương tự như đèn, ngoại trừ apache sẽ được thay thế bằng nginx. nginx được phát âm là “engine-x”, chiếm chữ e trong “lepm”, nginx cũng là một ứng dụng proxy http, nhưng nó không có danh tiếng ấn tượng như apache, nhưng nó có lợi thế là có thể xử lý tải tốc độ xử lý yêu cầu http cao hơn.

nginx bắt đầu được nhiều người sử dụng vào năm 2008, vì vậy nó đã thu hút được rất nhiều người dùng và hiện là ứng dụng máy chủ web phổ biến thứ hai sau apache khi nói về hoạt động. Trang web được báo cáo bởi netcraft.

2. Phân biệt giữa lemp và nhóm đèn

Như đã đề cập trước đó, sự khác biệt cơ bản giữa ngăn xếp đèn và lemp là các thành phần apache và nginx. Vậy sự khác biệt giữa việc sử dụng nginx và apache là gì? Chúng tôi sẽ so sánh riêng hai phần mềm để thấy rõ hơn sự khác biệt:

Apache:

– apache đã có từ lâu (từ năm 1995), nhiều mô-đun được viết và người dùng tham gia vào việc mở rộng chức năng của apache.

– Phương pháp tiếp cận theo hướng quy trình / luồng – Bắt đầu chậm lại khi tải nặng, yêu cầu tạo quy trình mới gây tiêu thụ nhiều bộ nhớ hơn, ngoài việc tạo luồng cạnh tranh mới cho tài nguyên cpu và ram;

-Giới hạn phải được đặt để đảm bảo 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ố giới hạn cho việc điều chỉnh apache: các luồng bị khóa cạnh tranh về bộ nhớ và vị trí của cùng một cpu và bộ nhớ.

nginx:

– Một ứng dụng máy chủ web mã nguồn mở được viết để giải quyết các vấn đề về khả năng mở rộng và hiệu suất liên quan đến apache.

– Phương pháp tiếp cận theo hướng sự kiện, không đồng bộ và không chặn, không tạo quy trình mới cho mỗi yêu cầu từ mạng.

– Đặt số lượng quy trình của worker, mỗi worker có thể xử lý hàng nghìn kết nối đồng thời

– mô-đun sẽ được chèn vào lúc biên dịch với trình biên dịch php bên trong (không yêu cầu mô-đun php).

Nói chung, nginx nhanh hơn và có thể xử lý tải hơn apache khi sử dụng cùng một bộ phần cứng. Tuy nhiên, apache vẫn tốt hơn nhiều về chức năng và khả năng sử dụng của các mô-đun cần thiết để làm việc với các ứng dụng máy chủ phụ trợ và chạy các ngôn ngữ kịch bản. Vì vậy, sự lựa chọn phần lớn phụ thuộc vào những gì bạn muốn chạy trên máy chủ web của mình. Vẫn có thể chạy cả apache và nginx trên cùng một máy chủ và nó sẽ giúp người dùng tận dụng tối đa cả hai. Ví dụ: bạn có thể chạy nginx dưới dạng proxy ngược trong khi apache đang chạy trên phần phụ trợ.

3. Cách triển khai lemp / lamp trên máy chủ (tự tạo)

Triển khai lemp trên ubuntu:

Hãy cẩn thận trước khi thực hiện chương trình

– Bạn cần quyền truy cập root vào hệ thống hoặc tài khoản người dùng có đặc quyền sudo.

– bắt đầu tên máy chủ trên hệ thống

– Cập nhật Hệ thống

Cài đặt:

-nginx:

Các bước này giúp cài đặt nginx mainline trên ubuntu từ kho lưu trữ nginx inc chính thức.

Mở /etc/apt/sources.list trong trình soạn thảo văn bản và thêm dòng sau vào cuối. Thay thế tên mã trong ví dụ này bằng tên mã của phiên bản ubuntu bạn đang sử dụng. Ví dụ: đối với ubuntu 18.04, có tên Bionic Beaver, hãy chèn Bionic thay cho tên mã sau:

/etc/apt/sources.list

1

deb http://nginx.org/packages/mainline/ubuntu/ tên mã nginx

Nhập khóa ký gói vào kho lưu trữ và thêm vào apt:

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

sudo apt-key thêm nginx_sign.key

Cài đặt nginx

Cập nhật apt sudo

sudo apt install nginx

Đảm bảo rằng nginx đang chạy và sẽ tự động bắt đầu khi khởi động lại:

sudo systemctl start nginx

sudo systemctl bật nginx

-mariadb

Cài đặt máy chủ mariadb và hỗ trợ mysql / mariadb-php. Bạn có thể được nhắc đặt mật khẩu gốc trong khi cài đặt.

sudo apt install mariadb-server php7.0-mysql

Chạy mysql_secure_installati trên 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 cho những lời nhắc sau:

Xóa người dùng ẩn danh?

Không cho phép đăng nhập từ xa gốc?

Thả cơ sở dữ liệu thử nghiệm và truy cập nó?

Tải lại bảng quyền ngay bây giờ?

Đăng nhập vào trình bao 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 cơ sở dữ liệu thử nghiệm 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 khẩu mạnh.

Tạo testdb cơ sở dữ liệu;

Tạo người dùng “testuser” được xác định bằng “password”;

Cấp tất cả quyền trên testdb. * cho “testuser”;

Đăng xuất

-php:

Cài đặt trình quản lý xử lý php fastcgi, trình quản lý này mang lại các phụ thuộc php cốt lõi:

sudo apt cài đặt php7.0-fpm

Yêu cầu php chỉ chấp nhận uris cho các tệp thực sự tồn tại trên máy chủ. Nếu tệp .php được yêu cầu không có trên hệ thống tệp, điều này sẽ giảm thiểu lỗ hổng bảo mật nơi trình biên dịch php có thể gây nhầm lẫn và cho phép thực thi mã tùy ý.

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 unix của php’s

được đặt thành www-data theo mặc định, nhưng chúng cần phải khớp với người dùng và nhóm nginx đang chạy. Nếu bạn cài đặt nginx từ kho lưu trữ nginx như được mô tả ở trên, nginx sẽ sử dụng người dùng nginx và nhóm nginx. Thay đổi biến lắng nghe trong www.conf thành:

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

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

– đặt tệp cấu hình trang web nginx

Tạo một thư mục gốc nơi nội dung web sẽ được hiển thị. Thay thế example.com bằng tên miền trang web của bạn.

sudo mkdir -p /var/www/example.com/

Vô hiệu hóa cấu hình trang web mặc định cho ví dụ được cung cấp dưới dạng một gói. Nếu bạn không sử dụng nó, bạn có thể xóa nó.

Tệp cấu hình trang web phải được đặt tại /etc/nginx/conf.d/. Tạo 1 hồ sơ cho trang web của bạn. Một lần nữa, hãy thay thế example.com bằng tên miền trang web của bạn.

/etc/nginx/conf.d/example.com.conf

– kiểm tra ngăn xếp lemp

Khởi động lại php và tải lại cấu hình nginx -test lemp stack

sudo systemctl khởi động lại php7.0-fpm

tải lại sudo nginx -s

Tạo trang kiểm tra để xác minh rằng nginx có thể hiển thị php và kết nối với cơ sở dữ liệu mysql. Thay thế các 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 trong trình duyệt web. Hiện ra thông báo sau: “Bạn đã kết nối thành công” nghĩa là bạn đã kết nối thành công. Nếu bạn thấy thông báo lỗi hoặc trang không tải được, hãy kiểm tra lại cấu hình.

Xóa tệp kiểm tra sau khi xác minh rằng ngăn xếp đang hoạt động bình thường.

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

Triển khai đèn trên ubuntu:

-linux:

Quy trình này giả định rằng ubuntu đã được cài đặt trên máy của bạn. Khi ubuntu được thiết lập và chạy, bạn sẽ cần đảm bảo mọi thứ trên hệ thống của mình ở trạng thái hiện tại. Để thực hiện việc này, hãy mở một thiết bị đầu cuối và nhập lệnh sau:

sudo apt-get update

Kết quả sẽ giống như cửa sổ bên dưới. Lưu ý rằng cửa sổ này và các cửa sổ tiếp theo sẽ hiển thị sự hoàn thành của mỗi dòng lệnh, đây chỉ là mô tả của chúng.

sudo apt-get nâng cấp

Lưu ý: Khi chạy lệnh “ nâng cấp “, bạn phải nhập xác nhận ““.

Lệnh

đầu tiên sẽ cập nhật danh sách các gói và phiên bản của chúng trên máy tính của bạn mà không cần thực hiện cài đặt. Lệnh thứ hai sẽ cài đặt gói. Do đó, bạn nên chạy bản cập nhật trước rồi mới nâng cấp.

– cài đặt apache

Để cài đặt apache, hãy nhập lệnh sau vào terminal:

sudo apt-get install apache2

– cài đặt phần phụ thuộc

Bạn cần thực hiện thêm một bước để đảm bảo apache và python hoạt động cùng nhau: cài đặt một công cụ có tên mod_wsgi. Đây là một công cụ miễn phí để phục vụ các ứng dụng python từ apache. Bạn cũng sẽ cần cài đặt gói trợ giúp có tên python-setuptools .

Để cài đặt công cụ và trình trợ giúp, hãy nhập lệnh sau vào terminal:

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

Bạn cần khởi động lại máy chủ apache để tải mod_wsgi:

khởi động lại apache2 dịch vụ sudo

-cài đặt mysql

Để cài đặt mysql, hãy nhập thông tin sau vào terminal:

sudo apt-get install mysql-server

Trong quá trình cài đặt mysql, bạn sẽ được nhắc đặt mật khẩu gốc. Đây là mật khẩu bạn sẽ sử dụng để cài đặt mysql. Bạn có thể chọn đặt ngay bây giờ hoặc để sau.

Sau khi cài đặt xong, mysql sẽ tự động khởi động. Để đăng nhập vào máy chủ, hãy sử dụng lệnh sau (bạn sẽ được nhắc nhập mật khẩu gốc):

mysql -u root -p

Từ đây, bạn có thể bắt đầu sử dụng mysql, thiết lập người dùng và cơ sở dữ liệu mới.

– cài đặt python

Bước cuối cùng là cài đặt python. Bằng cách chọn hệ điều hành ubuntu, chúng tôi sẽ tự động cài đặt python. Nếu bạn muốn biết phiên bản nào hiện đã được cài đặt, chỉ cần nhập lệnh sau vào terminal:

python

4. Tự động triển khai lepm / ngăn xếp đèn:

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 ngăn xếp lemp / đèn trên máy chủ 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à dễ xảy ra lỗi. Trong trường hợp này, người dùng cần bỏ nhiều thời gian và công sức để tìm và sửa lỗi.

Tin tốt là có một cách dễ dàng hơn để lắp đặt đèn / nhóm đèn chỉ trong một bước. Với tính năng plugin ứng dụng được tích hợp sẵn trong dịch vụ cung cấp máy chủ đám mây của bizfly cloud, các ngăn xếp đèn / lemp giờ đây có thể được cài đặt chỉ với một cú nhấp chuột.

Nếu bạn đã sử dụng máy chủ đám mây do bizfly cloud cung cấp, bạn sẽ có thể sử dụng các ứng dụng cài sẵn hoàn toàn miễn phí, đây là phần mềm duy nhất tại Việt Nam cho phép các ứng dụng tự động hóa cài đặt, triển khai và triển khai Chương trình trực tiếp trên máy chủ.

Theo dõi chia sẻ trên đám mây bizfly

& gt; & gt; Bạn có thể quan tâm: Tổng quan về các ứng dụng được tạo sẵn trên đám mây bizfly là gì?