Mục lục [Ẩn]
LEMP là một stack phổ biến bao gồm phần mềm mã nguồn mở được sử dụng chung để lưu trữ và phục vụ các ứng dụng web, cho dù đang trong quá trình sản xuất hay bất kỳ giai đoạn nào trong chu kỳ phát triển.
Thuật ngữ LEMP là từ viết tắt của Linux, Nginx (phát âm là Engine X, MariaDB hoặc MySQL - cơ sở dữ liệu và PHP để xử lý nội dung động). LEMP stack được sử dụng phổ biến để lưu trữ các ứng dụng và trang web có lưu lượng truy cập cao và có khả năng mở rộng cao.
Trong hướng dẫn này, bạn sẽ học cách cài đặt LEMP stack trên Rocky Linux 8.4.
Điều kiện tiên quyết
Trước khi bắt đầu cài đặt LEMP stack, hãy đảm bảo rằng bạn có các yêu cầu sau.
Phiên bản Rocky Linux 8 với người dùng sudo được định cấu hình.
Quyền truy cập SSH vào phiên bản Rocky Linux.
Hãy bắt đầu…
Bước 1: Cài đặt Nginx trên Rocky Linux
Bước đầu tiên là cài đặt thành phần đầu tiên của LEMP stack là máy chủ web Nginx. Đầu tiên, nâng cấp các gói.
$ sudo dnf update -y
Sau khi cập nhật xong, hãy cài đặt Nginx bằng cách chạy lệnh sau. Điều này cài đặt Nginx cùng với các phụ thuộc khác do máy chủ web yêu cầu.
$ sudo dnf install nginx
Sau khi có Nginx, hãy kích hoạt nó vào thời gian khởi động và khởi động daemon Nginx.
$ sudo systemctl enable nginx
$ sudo systemctl start nginx
Để xác nhận rằng máy chủ web đang chạy, hãy thực hiện lệnh:
$ sudo systemctl status nginx
Từ đầu ra, chúng ta có thể kết luận rằng máy chủ web đang hoạt động.
Nếu bạn tò mò, bạn có thể kiểm tra phiên bản của Nginx như sau. Đầu ra cho biết chúng tôi đang chạy Nginx 1.14.1.
$ nginx -v
nginx phiên bản: nginx/1.14.1
Ngoài ra, bạn có thể xác nhận rằng trình duyệt đang hoạt động bằng cách duyệt qua URL được hiển thị. Điều này sẽ hiển thị trang Chào mừng Nginx mặc định cho biết rằng tất cả đều ổn.
https://server-ip hoặc tên miền
Nếu bạn gặp sự cố khi xem trang, hãy xem xét việc mở cổng 80 hoặc cho phép lưu lượng HTTP trên tường lửa.
$ sudo firewall-cmd --zone = public --add-service = http --permosystem
Sau đó tải lại tường lửa và tải lại trang.
$ sudo firewall-cmd --reload
Bước 2: Cài đặt MariaDB trên Rocky Linux
Đối với hướng dẫn này, chúng tôi sẽ cài đặt cơ sở dữ liệu MariaDB. Điều này là do hiệu suất được tối ưu hóa và sự phong phú của các công cụ lưu trữ mà nó cung cấp, điều này làm cho nó vượt trội hơn nhiều so với MySQL.
Để cài đặt MariaDB máy chủ cơ sở dữ liệu, hãy chạy lệnh:
$ sudo dnf install mariadb-server mariadb
Sau khi hoàn tất, hãy kích hoạt và khởi động MariaDB như hình minh họa.
$ sudo systemctl kích hoạt mariadb
$ sudo systemctl start mariadb
Sau đó xác minh trạng thái của nó.
$ sudo systemctl status mariadb
Cài đặt mặc định cho MariaDB không đủ an toàn và cơ sở dữ liệu của bạn có thể dễ dàng bị xâm phạm. Để đề phòng những kẻ xâm nhập ở cấp độ cơ bản nhất, hãy chạy tập lệnh bên dưới.
$ sudo mysql_secure_installation
Đảm bảo thiết lập mật khẩu gốc.
Đối với các lời nhắc còn lại, chỉ cần gõ 'Y' để xóa người dùng ẩn danh, từ chối đăng nhập root từ xa, xóa cơ sở dữ liệu thử nghiệm và cuối cùng lưu các thay đổi đã thực hiện.
Để đăng nhập vào máy chủ cơ sở dữ liệu, hãy chạy lệnh:
$ sudo mysql -u root -p
Cung cấp mật khẩu và nhấn ENTER.
Bước 3: Cài đặt PHP trên Rocky Linux
Thành phần cuối cùng cần cài đặt là PHP thông qua PHP-FPM, viết tắt của FastCGI Process Manager. Đây là một bộ xử lý hiệu quả và cao cấp dành cho PHP, cung cấp các tính năng đảm bảo hiệu suất tối ưu và bảo mật cho các trang web có lưu lượng truy cập cao.
Để bắt đầu, chúng tôi sẽ cài đặt Remi kho lưu trữ, đây là kho lưu trữ miễn phí của bên thứ ba cung cấp các phiên bản PHP mới nhất.
Để kích hoạt Remi kho lưu trữ, hãy chạy lệnh:
$ sudo dnf install dnf-utils https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Sau khi Remi bật kho lưu trữ, hãy xem danh sách của các mô-đun PHP được lưu trữ bằng cách sử dụng lệnh được hiển thị.
Danh sách mô-đun $ sudo dnf php
Từ kết quả đầu ra, chúng ta có thể thấy rằng phiên bản mặc định là 7.2 - với thẻ [d]. Tuy nhiên, chúng tôi sẽ cài đặt mô-đun mới nhất là Remi 8.0.
Do đó, hãy đặt lại các mô-đun PHP mặc định và bật mô-đun Remi PHP mới nhất.
Đặt lại danh sách mô-đun $ sudo dnf mô-đun php
$ sudo dnf bật php: Rem-8.0
Tiếp theo, cập nhật hệ thống và cài đặt PHP và PHP-FPM cùng với các phần mở rộng PHP mà bạn ưa thích.
$ sudo dnf install php php-fpm php-gd php-mysqlnd php-cli php-opcache
Sau khi cài đặt xong, hãy bật và khởi động PHP-FPM như hình minh họa.
$ sudo systemctl enable php-fpm
$ sudo systemctl start php-fpm
Tiếp theo, xác minh trạng thái đang chạy của PHP-FPM.
$ sudo systemctl status php-fpm
Thông thường, PHP-FPM chạy với tư cách Apache người dùng, nhưng vì chúng tôi đang sử dụng Nginx, chúng tôi cần đặt nó thành Nginx. Vì vậy, hãy mở tệp cấu hình sau.
$ sudo vim/etc/php-fpm.d/www.conf
Đặt người dùng và nhóm thành Nginx.
user = nginx
Group = nginx
Sau đó, tải lại daemon PHP-FPM.
$ sudo systemctl tải lại php-fpm
Để xác nhận rằng chúng tôi đã cài đặt phiên bản PHP mới nhất, hãy chạy lệnh.
$ php -v
Một cách tiện lợi khác của Testing PHP là tạo một tệp PHP đơn giản và đặt nó vào thư mục webroot nằm trong /usr/share/nginx/html. Vì vậy, hãy tạo một tệp info.php đơn giản trong thư mục /usr/share/nginx/html webroot.
$ sudo vim/usr/share/nginx/html/info.php
Thêm nội dung sau và lưu tệp.
<? php
phpinfo ();
?>
Để thực hiện các thay đổi, hãy tải lại máy chủ web Nginx.
$ sudo systemctl khởi động lại nginx
Cuối cùng, truy cập vào URL sau.
https://server-ip/info.php
Một trang web với thông tin chi tiết về phiên bản PHP đã cài đặt cùng với các phần mở rộng PHP khác sẽ được hiển thị.
Tại thời điểm này thiết lập LEMP của chúng tôi đã hoàn tất. Trong bước tiếp theo, chúng tôi sẽ lưu trữ một trang web mẫu bằng cách định cấu hình khối máy chủ Nginx.
Bước 4: Định cấu hình khối máy chủ Nginx trong Rocky Linux
Một khối máy chủ cho phép quản trị viên lưu trữ nhiều trang web trên một máy chủ bằng cách xác định các thư mục gốc tài liệu trang web khác nhau. Đây là các thư mục chứa các tệp trang web.
Ở đây, chúng tôi sẽ tạo một tệp khối máy chủ Nginx duy nhất để lưu trữ một trang web mẫu.
+ Bước 1: Tạo thư mục trang Web
Đầu tiên, hãy tạo thư mục tài liệu của trang web, thư mục này sẽ chứa dữ liệu của trang web sẽ có sẵn cho khách truy cập trang web. Giả sử bạn có một tên miền tên là example.com. Tạo thư mục tên miền của trang web như sau. Đảm bảo thay thế example.com bằng tên miền đủ điều kiện hoặc tên miền đã đăng ký của trang web của bạn.
$ sudo mkdir -p/var/www/example.com/html
+ Bước 2: Đặt quyền sở hữu và quyền trên trang Web
Cấu trúc thư mục của miền hiện được đặt để lưu trữ các tệp của trang web. Hiện tại, người dùng root sở hữu các tệp. Chúng tôi cần đặt quyền sở hữu sao cho người dùng thông thường sở hữu tệp.
Để thay đổi quyền sở hữu tệp cho người dùng hiện đang đăng nhập, hãy sử dụng lệnh chown.
$ sudo chown -R $ USER: $ USER /var/www/example.com/html
Biến $ USER nhận giá trị của người dùng hiện đang đăng nhập và cấp quyền sở hữu của người dùng đối với các tệp html và thư mục con. Ngoài ra, cấp quyền đọc cho thư mục gốc của web chung để khách truy cập trang web có thể truy cập các trang của trang web.
$ sudo chmod -R 755 /var/www
Thư mục trang web hiện đã được cấu hình tốt để phục vụ các trang web của trang web.
+ Bước 3: Tạo 1 trang Demo
Bây giờ chúng ta hãy tạo một trang thử nghiệm mẫu. Chúng tôi sẽ tạo một tệp index.html rất cơ bản trong thư mục html của tên miền.
$ sudo vim/var/www/example.com/html/index.html
Dán nội dung bên dưới. Như bạn có thể thấy, nó khá cơ bản vì chúng tôi chỉ sử dụng nó cho mục đích thử nghiệm.
Thành công! Khối máy chủ đang hoạt động!
Lưu và thoát khỏi tệp HTML.
+ Bước 4: Tạo khối máy chủ Nginx cho trang Web
Tệp khối máy chủ là tệp chứa cấu hình của trang web. Nó giải thích cách máy chủ web Nginx phản hồi các yêu cầu từ khách truy cập trang web. Chúng ta sẽ bắt đầu bằng cách tạo hai thư mục:
/etc/nginx/sites-available - Đây là thư mục sẽ chứa tệp khối máy chủ.
/etc/nginx/sites-enable - Thư mục thông báo cho Nginx rằng tệp khối máy chủ đã sẵn sàng để phục vụ các yêu cầu.
Do đó, hãy tạo các thư mục như sau:
$ sudo mkdir /etc/nginx/sites-available
$ sudo mkdir /etc/nginx/sites-enable
Sau đó, chỉnh sửa tệp cấu hình chính của Nginx.
$ sudo mkdir /etc/nginx/nginx.conf
Dán các dòng sau. Dòng đầu tiên chỉ định đường dẫn đến thư mục chứa các tệp cấu hình bổ sung. Dòng thứ hai tăng bộ nhớ được cấp phát cho các tên miền phân tích cú pháp.
bao gồm /etc/nginx/sites-enabled/*.conf;
server_names_hash_bucket 64;
Lưu và thoát.
Tiếp theo, tạo một tệp khối máy chủ.
$ sudo vim /etc/nginx/sites-available/example.com.conf
Dán nội dung bên dưới. Thay thế example.com bằng tên miền Đủ điều kiện (FQDN) hoặc địa chỉ IP máy chủ của bạn.
máy chủ {
nghe 80;
server_name example.com www.example.com;
vị trí / {
root /var/www/example.com/html;
index index.html index.htm;
try_files $ uri $ uri / = 404;
}
error_trang 500 502 503 504 /50x.html;
location = /50x.html {
root / usr / share / nginx / html;
}
}
Lưu và thoát khỏi tệp.
+ Bước 5: Kích hoạt Nginx Server Block
Cuối cùng, chúng ta cần kích hoạt tệp khối máy chủ. Để làm như vậy, chúng tôi sẽ tạo một liên kết tượng trưng cho tệp khối máy chủ đến thư mục hỗ trợ trang web.
$ sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Sau đó, khởi động lại Nginx để các thay đổi được thực hiện.
$ sudo systemctl khởi động lại nginx
+ Bước 6: Kiểm tra trang Web Nginx
Để kiểm tra cấu hình, hãy khởi chạy trình duyệt của bạn và truy cập tên miền của trang web của bạn
https://example.com
Điều này sẽ hiển thị trang web của khối máy chủ như chúng tôi đã định cấu hình ở Bước 3.
Trong hướng dẫn này, chúng tôi đã hướng dẫn bạn cách cài đặt LEMP stack trên Rocky Linux 8 và tiến thêm một bước nữa để tạo và định cấu hình tệp khối máy chủ nơi chúng tôi lưu trữ một trang web tùy chỉnh.
+ Fanpage: https://www.facebook.com/nhanhoacom
+ Chỉ đường: https://g.page/nhanhoacom
+ Chương trình khuyến mãi mới nhất: https://nhanhoa.com/khuyen-mai.html
————————————————————
CÔNG TY TNHH PHẦN MỀM NHÂN HÒA
Hotline: 1900 6680
Trụ sở chính: Tầng 4 - Tòa nhà 97-99 Láng Hạ, Đống Đa, Hà Nội
Tel: (024) 7308 6680 – Email: sales@nhanhoa.com
Chi nhánh TP. Hồ Chí Minh: 270 Cao Thắng (nối dài), Phường 12, Quận 10, Tp.HCM
Tel: (028) 7308 6680 – Email: hcmsales@nhanhoa.com
Chi nhánh Vinh - Nghệ An: Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An
Tel: 0915221384 – Email: contact@nhanhoa.com