17 lượt xem

Hướng dẫn cài đặt LEMP stack trên Ubuntu 20.04 | Educationuk-vietnam.org

Bài viết dành cho những bạn đang muốn và có ý định triển khai website chạy bằng (PHP, Nodejs) trên hệ điều hành VPS Ubuntu 20.04 – 18.04.

Tại sao sử dụng ngăn xếp LEMP?

LEMP sử dụng Nginx là phần mềm máy chủ web hiệu suất cao và tính năng cân bằng tải tốt khi lượng truy cập nhiều giúp website chạy ổn định hơn.

LEMP là viết tắt của L (Linux), E (Engine x), M (MySQL / Mariadb), P (PHP) và là một trong những biến thể của máy chủ web. Sự khác biệt ở đây là bạn có thể thay đổi hoặc xóa các thành phần trên để tạo ra một môi trường lý tưởng để chạy dự án của bạn một cách tốt nhất. Ví dụ, chúng tôi có XAMPP. Trên máy tính Windows của bạn, bạn cài đặt XAMPP, bao gồm Apache, MySQL, PHP và X là một tập hợp các hệ điều hành hiện được hỗ trợ bởi XAMPP (Linux, Windows, MacOS) là các thành phần đã có sẵn. Sau khi cài đặt xong, bạn chỉ cần nhấn nút “start” để bật lên, nhưng khi bạn sử dụng hệ điều hành VPS linux điển hình như Ubuntu thì sẽ không có giao diện này. Bài viết này sẽ giúp bạn cài đặt môi trường máy chủ web của riêng bạn để chạy PHP hoặc Nodejs.

Ghi chú: Bài viết chỉ giúp mọi người cài đặt và chạy code PHP, mình sẽ không giải thích quá sâu về từng thành phần của LEMP stack. Nếu bạn muốn mình viết chuyên sâu hơn về chủ đề này, hãy comment để mình viết tiếp các phần bên dưới.

Trước khi làm theo tôi, bạn có thể đọc và tìm hiểu trước về cách sử dụng lệnh linux hoặc ubuntu, cách sử dụng trình soạn thảo nano hoặc vim.

1: Cập nhật và nâng cấp các gói hiện có và đã lỗi thời trong hệ thống.

Lệnh trên giúp bạn cập nhật các gói có sẵn trên hệ thống với đường dẫn tệp: /etc/apt/sources.list.d, -Y ở cuối câu được sử dụng để chấp nhận các gói cần thiết khi cập nhật và nâng cấp để xuất.

Ghi chú: Lệnh cập nhật phải được chạy trước lệnh cập nhật. Vì bản cập nhật có chức năng đồng bộ lại các tệp chỉ mục từ các tài nguyên được bao gồm /etc/apt/sources.list.d.

2: Cài đặt Nginx.

Sau khi cập nhật và nâng cấp các gói trên hệ thống của bạn, hãy bắt đầu chạy các lệnh để cài đặt Nginx bên dưới.

Ghi chú: Nếu sau khi thực hiện lệnh mà hệ thống nhắc nhập dữ liệu, và nhập mật khẩu vào màn hình lệnh thì mật khẩu không hiện ra ******* bạn chỉ việc gõ xong nhấn Enter.

READ  Ngành y đa khoa học những gì? Học như thế nào, khó không? | Educationuk-vietnam.org

Khi quá trình cài đặt hoàn tất, hãy chạy lệnh sau:

Sau khi chạy lệnh, màn hình sẽ hiển thị phiên bản nginx hiện tại mà bạn đã cài đặt:

2.1: Cấu hình tường lửa.

Tại sao chúng ta cần cấu hình tường lửa? Cấu hình tường lửa để đảm bảo an ninh và cho phép lưu lượng truy cập qua các cổng mặc định của webserver, thông thường các trang web sẽ sử dụng hai giao thức là HTTP và HTTPS tương đương với cổng mặc định 80 và 443.

Bạn chạy hai lệnh sau:

Sau khi chạy hai lệnh trên, màn hình của bạn sẽ xuất hiện như sau:

2.2: Khởi động Nginx.

Trước tiên, bạn cần kiểm tra trạng thái hoạt động của Nginx bằng cách chạy lệnh sau:

Nếu màn hình xuất hiện như thế này, thì nginx không chạy:

Để chạy nginx, hãy chạy lệnh sudo systemctl start nginx:

Sau khi chạy lệnh trên, hãy kiểm tra trạng thái nginx.

Vậy là xong, nginx đã lên và chạy.

Sau đó chạy lệnh: sudo systemctl cho phép nginx.

Lệnh này cho phép nginx khởi động cùng hệ thống.

Bây giờ, hãy mở trình duyệt của bạn và nhập: http: // localhost hoặc http: //127.0.01.

3: Cài đặt MySQL.

MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất được sử dụng bởi các trang web lớn và nhỏ.

Để cài đặt MySQL, hãy làm theo các bước bên dưới.

Chạy lệnh cài đặt MySQL:

Sau khi cài đặt xong, chúng ta sẽ chạy chương trình mysql_secure_installation để định cấu hình bảo mật.

mysql_secure_installation nó sẽ giúp chúng tôi đặt mật khẩu gốc MySQL, xóa người dùng ẩn danh, vô hiệu hóa mysql từ xa và xóa cơ sở dữ liệu thử nghiệm.

Bạn có thể làm theo cách của bạn hoặc lựa chọn của riêng bạn.

Sau đó đăng nhập vào MySQL với tư cách là người dùng gốc:

Vì vậy, bạn có quyền truy cập vào MySQL. Thoát MySQL, gõ đầu ra; hoặc lá;

Ghi chú: Từ phiên bản MySQL 5.7 trở đi, người dùng gốc MySQL có thể đăng nhập mà không cần sử dụng mật khẩu như trên sau khi cấu hình mysql_secure_installation. Bạn chỉ cần chạy lệnh sudo mysql có thể đăng nhập vào MySQL rất dễ dàng và nhanh chóng. Nhưng sẽ có một vấn đề là khi chúng ta cần kết nối từ bên ngoài, ví dụ sử dụng phần mềm quản lý MySQL của bên thứ ba như: Navicat, phpMyAdmin v.v… thì việc truy cập sẽ rất phức tạp. , đặc biệt là khi bạn cấu hình trên máy chủ và cần truy cập từ xa để quản lý cơ sở dữ liệu.

READ  Mẫu hợp đồng ký gửi hàng hóa mới nhất 2022 | Educationuk-vietnam.org

Để giải quyết vấn đề này, bạn sẽ tạo một người dùng mới với chức năng sử dụng quyền truy cập từ xa vào MySQL trên máy chủ.

Vẫn ở màn hình lệnh trên máy chủ MySQL, nếu bạn đã đăng xuất, sau đó đăng nhập lại bằng sudo mysql.

3.1: Hiển thị người dùng MySQL

Chạy lệnh sau để kiểm tra người dùng hiện có trong MySQL:

Đây là danh sách người dùng mặc định của tôi khi cài đặt MySQL, một số bạn sẽ khác một chút, nhưng không vấn đề gì.

3.2: Tạo người dùng MySQL.

Lệnh tạo người dùng mới trong MySQL:

Giải thích nhân vật % có nghĩa là chấp nhận tất cả các kết nối từ trong nước và nước ngoài đến người dùng này.

3.3: Cấp quyền cho người dùng.

Cách khác là cấp quyền cho người dùng thao tác với tất cả các cơ sở dữ liệu, thêm, sửa đổi, xóa dữ liệu trong bảng.

Chạy lại lệnh FLUSH PRIVILEGES để tải lại và chấp nhận các thay đổi mới.

Kiểm tra danh sách người dùng để xem người dùng mới đã được thêm thành công hay chưa:

Tôi đã thêm một người dùng mới: user_demo1 và khi tôi kiểm tra danh sách người dùng, có user_demo1. Vì vậy, tôi đã thêm thành công.

3.4: Truy cập từ xa MySQL.

Khi bạn cài đặt MySQL Server, bạn sẽ cần một kết nối bên ngoài để quản lý cơ sở dữ liệu nhằm thực hiện các tác vụ như thêm, chỉnh sửa và xóa các bảng và cột. Nhưng bây giờ chúng ta không thể kết nối với MySQL vì mặc định MySQL cài đặt tệp cấu hình mysqld.cnf sẽ cấu hình MySQL để kết nối cục bộ, kết nối bên ngoài với user_demo1 Tôi vừa tạo sẽ không thể kết nối từ bên ngoài. Vì vậy, bạn cần truy cập vào tệp mysqld.cnf để sửa đổi MySQL để chấp nhận các kết nối bên ngoài.

Bạn chạy lệnh sau:

Tìm dòng bind-address, mặc định sẽ là bind-address = 127.0.0.1 bạn nhé hoặc đổi địa chỉ ip 127.0.0.1 = 0.0.0.0 để lấy tất cả các ràng buộc từ local ra ngoài. Nếu không có địa chỉ ràng buộc trong tệp mysqld.cnf của bạn, bạn có thể tự thêm địa chỉ đó. Sau đó nhấn tổ hợp phim: Ctrl + X, Y, Enter bằng nano để lưu thay đổi.

Sau đó khởi động lại MySQL để chấp nhận các thay đổi mới.

Sau đó sử dụng Navicat hoặc phpMyAdmin để kết nối với máy chủ MySQL.

Ghi chú: Máy chủ trường khi bạn nhập nếu trên máy tính để bàn thì nó sẽ là localhost hoặc 127.0.0.1, nếu là VPS thì nó sẽ điều chỉnh IP của VPS, ví dụ: 34.231.411.22.

READ  Cách viết hồ sơ học sinh sinh viên chính xác nhất ! | Educationuk-vietnam.org

4: Cài đặt PHP.

Trong hướng dẫn này, tôi sẽ cài đặt phiên bản PHP8.0.

Bạn chạy lệnh sau:

Cài đặt các gói bổ sung cần thiết để chạy một dự án PHP.

Sau khi cài đặt xong, hãy khởi động php8.0-fpm.

Cho phép thực thi trên cùng một hệ thống.

Kiểm tra xem php-fpm có đang chạy không.

5: Định cấu hình PHP-FPM.

Theo mặc định, Nginx không thể đọc các tệp mã kết thúc bằng .php. Vì vậy, nếu bạn muốn Nginx đọc các tệp có phần mở rộng .php, bạn có thể định cấu hình php-fpm để giao tiếp với Nginx. PHP-FPM có nhiệm vụ dịch các tệp mã php sang html để Nginx có thể hiểu và hiển thị nó ra bên ngoài giao diện trang web. Và trong hướng dẫn này, tôi sẽ cấu hình PHP-FPM theo giao thức TCP.IP socket.

Mở tệp cấu hình theo đường dẫn: /etc/php/8.0/fpm/pool.d/www.conf.

Bạn tìm dòng “nghe = /run/php/php8.0-fpm-sock”.

Thêm dòng “nghe = 0.0.0.0:9000” bên dưới.

Sau đó nhấn tổ hợp phím Ctrl + w và gõ pong. Vui lòng bỏ dấu tích ; trước dòng

; ping.response = pong

; ping.path = / ping và lưu.

Khởi động lại PHP-FPM để cấu hình có hiệu lực.

Để kiểm tra xem PHP-FPM và Nginx có được kết nối hay không, hãy sử dụng lệnh sau:

“SCRIPT_NAME = / ping SCRIPT_FILENAME = / ping REQUEST_METHOD = NHẬN cgi-fcgi -bind – liên kết 0.0.0.0:9000”

Đầu ra như thế này là PHP-FPM và Nginx được kết nối.

6: Tạo khối máy chủ Nginx.

Trước tiên, bạn nên sao lưu một tệp cấu hình Nginx gốc trong trường hợp bạn cần thứ gì đó để sử dụng.

Vì chúng tôi sẽ không sử dụng tệp Nginx gốc để cấu hình, chúng tôi sẽ xóa nó.

Bạn tạo một tệp mới và sao chép mã cấu hình đã tạo sẵn của bạn bên dưới.

Các bạn trong tệp cấu hình Nginx của mình ở đây: nginx.conf.

Đặt nó như thế này:

Lưu ý: Phần root / var / www là đường dẫn đến thư mục chứa tệp mã.

Lưu và chạy lệnh:

Kiểm tra xem cấu hình Nginx có đúng không:

Như hình bên dưới là thiết lập thành công không có lỗi.

Tiếp theo khởi động lại Nginx để nhận cấu hình mới:

Tạo tệp info.php để kiểm tra xem Nginx có thể chạy tệp php hay không.

Dán mã này và lưu nó:

Bây giờ trong thanh địa chỉ của trình duyệt, nhập server-ip-address / info.php, ví dụ localhost / info.php, server: 34.324.123.11/info.php

Kết quả là như thế này:

Nên mình hướng dẫn các bạn cách cài đặt và cấu hình để lemp stack hoạt động, các bạn có thể comment bên dưới hoặc tham gia nhóm https://www.facebook.com/groups/backendfpolyhn để giao lưu và chia sẻ kiến ​​thức.

Chúc may mắn.

Bài viết cùng chủ đề: