NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
09/05/2023
Lượt xem

Hướng dẫn chi tiết cách cài đặt LOMP stack trên Ubuntu 20.04

09/05/2023
16 phút đọc
Lượt xem

Đánh giá

5/5 - (191 bình chọn)

LOMP stack (Linux, OpenLiteSpeed, MariaDB và PHP) là một nhóm các phần mềm mã nguồn mở thường được cài đặt cùng với nhau để cho phép server host các website và ứng dụng web động. Bài viết viết dưới đây của Vietnix sẽ hướng dẫn chi tiết cách cài đặt LOMP stack trên Ubuntu 20.04.

Bước 1 – Cài đặt OpenLiteSpeed

Trước khi bắt đầu, bạn cần phải có user non-root với quyền sudo, cài sẵn tường lửa và có ít nhất 1GB RAM. Bên cạnh đó, ta cũng cần có một tên miền đầy đủ điều kiện để cấu hình SSL. Bạn có thể tham khảo mua chứng chỉ SSL và tên miền với mức giá vô cùng hợp lý tại Vietnix.

Ngoài ra, khi khách hàng mua bất kỳ sản phẩm hosting nào tại Vietnix cũng đều được tặng miễn phí chứng chỉ SSL trọn đời. Ngoài ra, Vietnix cũng cung cấp dịch vụ SSL riêng cho những khách hàng có nhu cầu cao hơn. Hiện tại, Vietnix nhiều gói SSL với chi phí và phương thức xác thực khác nhau, phù hợp với mọi quy mô doanh nghiệp.

Liên hệ ngay với Vietnix để được tư vấn lựa chọn dịch vụ SSL phù hợp cho website của bạn.

Trước tiên, cài đặt web server OpenLiteSpeed sau khi import các repo package cần thiết vào server.

Cập nhật cache bộ quản lý package:

sudo apt update

Khác với Apache hay Nginx, OpenLiteSpeed host code trong chính repo của mình. Vì vậy ta cần thêm repo này vào bộ quản lý package apt bằng lệnh sau:

sudo wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash

Trong đó, wget dùng để fetch repo từ xa ở server của OpenLiteSpeed, còn flag -o cho phép in nội dung file ra terminal, | là toán tử pipe dùng để truyền nội dung đến một bash shell mới chạy bởi lệnh sudo bash. Terminal bash này thực thi các lệnh có trong file .sh fetch được từ repo và thực hiện việc cài đặt repo này trên APT ở máy cục bộ.

Output sau đó sẽ có dạng như sau:

Output
--2022-03-16 08:51:49--  http://rpms.litespeedtech.com/debian/lst_repo.gpg
Resolving rpms.litespeedtech.com (rpms.litespeedtech.com)... 52.55.120.73
Connecting to rpms.litespeedtech.com (rpms.litespeedtech.com)|52.55.120.73|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2336 (2.3K) [application/octet-stream]
Saving to: ‘/etc/apt/trusted.gpg.d/lst_repo.gpg’

/etc/apt/trusted.gp 100%[===================>]   2.28K  --.-KB/s    in 0s

2022-03-16 08:51:50 (329 MB/s) - ‘/etc/apt/trusted.gpg.d/lst_repo.gpg’ saved [2336/2336]

 update the repo
Hit:1 https://repos.insights.digitalocean.com/apt/do-agent main InRelease
Hit:2 http://mirrors.digitalocean.com/ubuntu focal InRelease
Hit:3 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
Hit:4 http://mirrors.digitalocean.com/ubuntu focal-updates InRelease
Ign:5 http://rpms.litespeedtech.com/debian focal InRelease
Hit:6 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:7 http://mirrors.digitalocean.com/ubuntu focal-backports InRelease
Get:8 http://rpms.litespeedtech.com/debian focal Release [1652 B]
Get:9 http://rpms.litespeedtech.com/debian focal Release.gpg [836 B]
Get:10 http://rpms.litespeedtech.com/debian focal/main amd64 Packages [18.3 kB]
Fetched 20.8 kB in 2s (13.6 kB/s)
Reading package lists... Done
 All done, congratulations and enjoy !

Tiếp theo, cài đặt package openlitespeed:

sudo apt install openlitespeed

Nhập password khi được yêu cầu và xác nhận bằng phím Y.

Sau khi cài đặt xong, kiểm tra xem OpenLiteSpeed đã được cài đặt chưa bằng cách chạy lệnh sau:

sudo systemctl status lsws

Lệnh systemctl status sẽ nhận trạng thái của dịch vụ được chỉ định trong phần keyword của lệnh, ở đây là lsws (OpenLiteSpeed Web Server).

Output:

Output
● lshttpd.service - OpenLiteSpeed HTTP Server
     Loaded: loaded (/etc/systemd/system/lshttpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-03-16 08:59:09 UTC; 2min 26s ago
    Process: 32997 ExecStart=/usr/local/lsws/bin/lswsctrl start (code=exited, status=0/SUCCESS)
   Main PID: 33035 (litespeed)
     CGroup: /system.slice/lshttpd.service
             ├─33035 openlitespeed (lshttpd - main)
             ├─33044 openlitespeed (lscgid)
             └─33073 openlitespeed (lshttpd - #01)

Bây giờ ta có thể truy cập web server OpenLiteSpeed bằng cách chạy theo cấu hình mặc định. Hiện tại thì firewall có thể vẫn đang chặn lưu lượng truy cập vào các port của admin Panel dựa trên GUI hay các website mẫu, vì thế tạm thời ta sẽ chưa truy cập được. Bạn có thể cập nhật firewall và mở các port cần thiết ở bước sau đây.

Bước 2 – Cập nhật firewall

Ở bước này ta sẽ cấu hình firewall cho server để cho phép lưu lượng truy cập qua TCP đến các port được chọn cho admin panel và những website mẫu. Đồng thời, ta cũng sẽ mở port 80443 cho các trang HTTPHTTPS.

Server OpenLiteSpeed kết hợp admin panel dựa trên GUI và nhiều website mẫu. Trong đó admin panel là một giao diện dễ sử dụng, dùng để cấu hình nhiều thiết lập như Listeners, Virtual Hosts, SSL hay log giám sát. Các website mẫu gồm có CGI Script, PHP Script, Error Page hay Password Protected Page, thường được dùng để kiểm tra khả năng và các tính năng của server.

Theo mặc định, admin panel nghe trên cổng 7080, còn website mẫu sẽ nghe trên cổng 8080. Vì vậy ta cần cho phép các lưu lượng TCP ở trên những cổng này thông qua ufw firewall.

Chạy lệnh sau để cấp quyền truy cập vào các cổng:

sudo ufw allow 7080,80,443,8088/tcp

Sau đó kiểm tra trạng thái các quy tắc của firewall:

sudo ufw status

Output:

Output
Status: active

To                                Action      From
--                                ------      ----
OpenSSH                           ALLOW       Anywhere
80,443,7080,8088/tcp              ALLOW       Anywhere
OpenSSH (v6)                      ALLOW       Anywhere (v6)
80,443,7080,8088/tcp (v6)         ALLOW       Anywhere (v6)

Bây giờ hãy thử mở website mẫu qua cổng 8088:

http://your_server_ip:8088
Website mẫu Openlitespeed
Website mẫu OpenLiteSpeed

Tương tự, mở admin panel ở cổng 7080:

http://your_server_ip:7080

Ở các phần sau của hướng dẫn, ta sẽ dùng giao diện GUI để cấu hình web server.

Sau khi thiết lập xong server OpenLiteSpeed trên máy Ubuntu, ta đã có thể host nhiều ứng dụng web dựa trên nhiều loại ngôn ngữ backend và framework khá nhau.

Bước 3 – Cài đặt MariaDB

Server database MariaDB cho phép lưu trữ, truy vấn và quản lý dữ liệu trên website một cách hiệu quả. MariaDB hỗ trợ cả SQL lẫn NoSQL, đồng thời dễ dàng tích hợp được với nhiều database engine như MyISAM hay InnoDB.

Cài đặt server MariaDB bằng lệnh sau:

sudo apt install mariadb-server

Nhập Y để xác nhận. Sau khi cài đặt xong, hãy hoàn tất việc setup server bằng lệnh sau:

sudo mysql_secure_installation

Cài đặt mặc định chưa có root password nên ta chỉ cần nhấn Enter khi được yêu cầu nhập mật khẩu.

Output:

Output

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Tiếp theo ta cần thiết lập mật khẩu. Chọn password đủ mạnh rồi nhấn Y để xác nhận.

Output
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorization.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

Tiếp theo, hệ thống sẽ hỏi xem bạn có muốn xóa các user ẩn danh hay không. Nhập Y để đồng ý.

Output
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Nếu không muốn truy cập database bằng root user từ server khác hoặc trên máy local, bạn nên tắt tính năng cho phép đăng nhập vào root. Nhập Y khi được hỏi như dưới đây để xác nhận:

Output
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

Ta cũng có thể xóa database thử nghiệm và các quyền liên quan:

Output
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Cuối cùng là reload lại các bảng đặc quyền để áp dụng thay đổi cho server:

Output
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Bây giờ ta đã cài đặt và cấu hình xong server database MariaDB. Database này sẽ nghe các kết nối MySQL trên cổng 3306 theo cấu hình mặc định. Ta chỉ cần truy cập database nội bộ (trên cùng một server) nên không cần mở port này cho các lưu lượng bên ngoài trong thiết lập firewall.

Bước 4 – Cài đặt PHP

OpenLiteSpeed đi kèm mới một phiên bản PHP có sẵn, nhưng có thể chưa phải là bản PHP mới nhất. Do đó Vietnix khuyên bạn nên kiểm tra phiên bản PHP trước rồi cài đặt nếu cần thiết.

Chạy lệnh sau để kiểm tra phiên bản PHP đang sử dụng trên server OpenLiteSpeed:

http://your_server_ip:8088/phpinfo.php

Bạn có thể kiểm tra danh sách các phiên bản và khả năng tương thích tại đây, ở trong phần Installation. Ngoài ra ta cũng có thể kiểm tra các package LSPHP (LiteSpeed PHP) có sẵn cho Ubuntu bằng lệnh:

sudo apt-cache search lsphp

Trong output, ta có thể kiểm tra phiên bản php bằng cách xem hậu tố tên của package:

Output
...
lsphp81 - server-side, HTML-embedded scripting language (LSAPI binary)
...

Trong output này, lsphp81 nghĩa là PHP đang ở phiên bản v8.1.

Để cài đạt một package lsphp cụ thể, hãy chạy lệnh sau (thay 81 bằng phiên bản bạn cần cài đặt):

sudo apt install lsphp81 lsphp81-{common,mysql}

Sau đó nhập Y để xác nhận việc cài đặt.

Bước 5 – Cấu hình OpenLiteSpeed

Sau khi cài đặt xong PHP, OpenLiteSpeed vẫn chỉ đang sử dụng phiên bản PHP mặc định được cài sẵn. Do đó trong phần này ta sẽ cấu hình cho server sử dụng bản PHP vừa cài ở trên.

Mở admin panel ở port 7080 để bắt đầu cấu hình:

http://your_server_ip:7080

Trong terminal, thiết lập thông tin của tài khoản quản trị bằng lệnh sau:

sudo /usr/local/lsws/admin/misc/admpass.sh

Các thông tin này sẽ khác với những thông tin đăng nhập ở các bước trước, và chỉ hoạt động đối với admin panel của server OpenLiteSpeed.

Nhập usernamepassword khi được yêu cầu.

Output
Please specify the user name of administrator.
This is the user name required to login the administration Web interface.

User name [admin]: sammy

Please specify the administrators password.
This is the password required to login the administration Web interface.

Password:
Retype password:
Administrators username/password is updated successfully!

Thông qua http://your_server_ip:7080, đăng nhập vào admin Panel bằng thông tin vừa thiết lập, đi đến phần Server Configuration rồi chọn tab External App.

Admin panel External App
Admin panel External App

Click vào nút Edit trong cột Actions, dòng LiteSpeed SAPI App, sau đó màn hình sẽ hiện ra một ứng dụng có tên lsphp. Kéo xuống trường Command rồi đổi giá trị thành lsphp81/bin/lsphp (thay 81 thành phiên bản tương ứng). Sau đó kéo xuống phần LiteSpeed SAPI App, nhấn Save để lưu.

Tiếp theo, restart web server bằng cách click vào nút Graceful Restart màu xanh ở trên.

Admin panel Graceful Restart
Admin panel Graceful Restart

Bây giờ hãy kiểm tra xem server có đang chạy phiên bản PHP đã được chỉ định hay không:

http://your_server_ip:8088/phpinfo.php

Bước 6 – Thiết lập Virtual Host

Ở bước cuối cùng, ta sẽ thiết lập host ảo (Virtual Host) cho các website. Virtual Host cho phép ta phục vụ nhiều website, được định danh bằng các hostname riêng biệt, thông qua một web server quy nhất. OpenLiteSpeed có khả năng phục vụ nhiều Virtual Host, được ánh xạ sang các Listener, các Listener lại tiếp tục được ánh xạ sang những port được chỉ định.

OpenLiteSpeed cho phép Virtual Hosts có nhiều quy tắc điều hướng tùy chỉnh, đồng thời mỗi host cũng có thể cấu hình một phiên bản PHP khác nhau. Hơn nữa, Virtual Host cũng có thể được cấu hình để hoạt động như một kết nối reverse proxy cho các web server khác như NodeJS.

Trong admin panel, vào phần Virtual Hosts, click vào dấu + ở góc trên bên phải để thêm một Virtual Host mới.

Bây giờ ta có thể thêm một tên Virtual Host tùy ý, rồi thiết lập root và đường dẫn cho file cấu hình thông qua các biến như $SERVER_ROOT (chỉ root directory của web server OpenLiteSpeed) hay $VH_ROOT (chỉ root directory của virtual host). Click Yes vào phần Enable Scripts/ExtApps để bảo đảm PHP có thể hoạt động trên Virtual Host.

Khi thiết lập Virtual Host, điền vào các trường sau với giá trị mong muốn (phần highlight là gợi ý):

  • Virtual Host Name: MyWebsite
  • Virtual Host Root: $SERVER_ROOT/MyWebsite/html/
  • Config File: conf/vhosts/MyWebsite/vhconf.conf
  • Enable Scripts/ExtApps: Yes
  • Restrained: Yes

Phần Restrained giúp ngăn chặn người dùng không truy cập vào các file có trong thư mục không nằm trong root directory của Virtual Host, kể cả khi có liên kết tượng trưng (symbolic link) trỏ đến những file nằm ngoài root directory.

Sau khi hoàn tất việc cài đặt, nhấn vào nút Save. Admin panel có thể sẽ hiển thị một thông báo yêu cầu restart để áp dụng thay đổi. Nhấn Graceful Restart như ở bước trên.

Bây giờ ta sẽ cấu hình Listener. Vào phần Listeners trong admin panel, click vào Default, nhấn dấu + để thêm. Trong menu dropdown, chọn Virtual Host Name đã gán trong cấu hình Virtual Host (ở ví dụ này là MyWebsite).

Trong phần tên miền, nhập tên miền đầy đủ điều kiện dùng để phục vụ Virtual Host đã cấu hình. Trong ví dụ này là mywebsite.com.

Nhập tên miền để phục vụ Virtual Host
Nhập tên miền để phục vụ Virtual Host

Sau đó click vào nút Save ở trên hàng Virtual Hosts Mapping.

Bên cạnh đó, bạn nên enable tính năng bảo mật TLS cho website. Trong phần General của Listener, cập nhật option Secure thành Yes rồi đổi port từ 8088 thành 443 đối với các Listener phục vụ trang HTTPS.

Ngoài ra, ta cũng có thể thêm chứng chỉ và file key (nếu có) vào OpenLiteSpeed. Cụ thể, thêm các đường dẫn tương ứng vào phần SSL của cấu hình Listener bằng cách nhấn nút Edit trong hàng SSL Private key & Certificate.

Thêm chứng chỉ và file key trong SSL Private key & Certificate
Thêm chứng chỉ và file key trong SSL Private key & Certificate

Sau đó thực hiện Graceful Start như các bước trên.

Bây giờ ta đã cấu hình thành công Virtual Host, có Listener, đồng thời cũng thiết lập TLS cho mọi lưu lượng đi đến website. Sau khi cấu hình DNS để ánh xạ địa chỉ IP public của server, website sẽ có thể truy cập được tại tên miền đã được chỉ định sẵn.

Bài viết này đã hướng dẫn chi tiết cách cài đặt LOMP stack gồm 4 phần mềm mã nguồn mở: Linux, OpenLiteSpeed, MariaDB và PHP. Bây giờ ta có thể dễ dàng host nhiều loại ứng dụng PHP hay framework khác nhau như WordPress, Laravel hay Joomla trên server của mình.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Black Friday Hosting & VPS

Chương trình kết thúc sau

Giảm giá 40% hosting VPS

50 coupon mỗi ngày

Gia hạn giá không đổi

NHẬN DEAL NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG