Cách cài đặt và cấu hình OpenLiteSpeed Server cùng với MariaDB và PHP trên Ubuntu 20.04

theanh

Administrator
Nhân viên
OpenLiteSpeed là phiên bản nhẹ và mã nguồn mở của LiteSpeed Server do LiteSpeed Technologies phát triển. Nó đi kèm với bảng điều khiển Quản trị dựa trên WebGUI khiến nó khác biệt so với các máy chủ khác và dễ quản lý hơn.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt OpenLiteSpeed Server trên Ubuntu 20.04 cùng với PHP 7.4 và máy chủ MariaDB.

Điều kiện tiên quyết​


  • Máy chủ web dựa trên Ubuntu 20.04.

  • Tài khoản người dùng không phải root có quyền sudo.
Cập nhật hệ thống của bạn.
Mã:
$ sudo apt update$ sudo apt upgrade

Bước 1 - Cấu hình Tường lửa​

Trước khi bắt đầu với hướng dẫn, chúng ta cần cấu hình Tường lửa đơn giản (UFW) thường được bật theo mặc định. Trước tiên, hãy kiểm tra trạng thái của tường lửa.

Chúng ta cần bật SSH, HTTP, HTTPS và các cổng 7080, 8088 cho tường lửa.
Mã:
$ sudo ufw allow OpenSSH$ sudo ufw allow http$ sudo ufw allow https$ sudo ufw allow 7080/tcp$ sudo ufw allow 8088/tcp
Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo ufw statusTrạng thái: activeĐến Hành động Từ-- ------ ----OpenSSH ALLOW Anywhere80/tcp ALLOW Anywhere443/tcp ALLOW Anywhere7080/tcp ALLOW Anywhere8088/tcp ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)80/tcp (v6) ALLOW Anywhere (v6)443/tcp (v6) ALLOW Anywhere (v6)7080/tcp (v6) ALLOW Anywhere (v6)8088/tcp (v6) ALLOW Anywhere (v6)
Nếu không hoạt động, hãy khởi động tường lửa.
Mã:
$ sudo ufw enable

Bước 2 - Cài đặt OpenLiteSpeed​

Có nhiều phiên bản OpenLiteSpeed khác nhau mà bạn có thể cài đặt. Các phiên bản được đề xuất là từ loạt 1.6.x hoặc 1.7.x tại thời điểm viết hướng dẫn này.

Chúng tôi sẽ sử dụng Kho lưu trữ chính thức của OpenLiteSpeed cho hướng dẫn của mình, nơi chỉ duy trì phiên bản 1.6.x.

Thêm Khóa kho lưu trữ OpenLiteSpeed.
Mã:
$ wget -qO - https://rpms.litespeedtech.com/debian/lst_repo.gpg | sudo apt-key add -
Thêm Kho lưu trữ.
Mã:
$ echo "deb http://rpms.litespeedtech.com/debian/ focal main" | sudo tee /etc/apt/sources.list.d/openlitespeed.list
Cập nhật Kho lưu trữ.
Mã:
$ sudo apt update
Cài đặt OpenLiteSpeed
Mã:
$ sudo apt install openlitespeed
Kiểm tra trạng thái của máy chủ.
Mã:
$ sudo /usr/local/lsws/bin/lswsctrl statuslitespeed đang chạy với PID 21825.
Nếu không chạy, bạn có thể bắt đầu bằng lệnh sau.
Mã:
$ sudo /usr/local/lsws/bin/lswsctrl start
Mở http://:8088 để truy cập máy chủ web của bạn. Bạn sẽ thấy trang sau.


Bước 3 - Cài đặt PHP​

Máy chủ OpenLiteSpeed đi kèm với PHP 7.3 đã được kích hoạt sẵn. Nhưng chúng tôi muốn sử dụng PHP 7.4 nên chúng tôi sẽ cài đặt bản sao của riêng mình.

Cài đặt PHP 7.4 cùng với một số gói bổ sung.
Mã:
$ sudo apt install lsphp74 lsphp74-common lsphp74-mysql lsphp74-curl
Xác minh cài đặt PHP của bạn.
Mã:
$ /usr/local/lsws/lsphp74/bin/php7.4 -vPHP 7.4.5 (cli) (xây dựng: 7 tháng 5 năm 2020 23:08:38) (NTS)Bản quyền (c) The PHP GroupZend Engine v3.4.0, Bản quyền (c) Zend Technologies với Zend OPcache v7.4.5, Bản quyền (c), của Zend Technologies
Bạn có thể kiểm tra PHP đã được bật chưa modules.
Mã:
$ /usr/local/lsws/lsphp74/bin/php7.4 --modules
Chúng ta sẽ cấu hình PHP để làm việc với OpenLiteSpeed sau.

Bước 4 - Cài đặt MariaDB​

Cài đặt máy chủ MariaDB.
Mã:
$ sudo apt install mariadb-server
Khởi động và kích hoạt dịch vụ MariaDB.
Mã:
$ sudo systemctl start mariadb$ sudo systemctl enable mariadb
Bảo mật cài đặt MariaDB của bạn. Tập lệnh này sẽ đặt mật khẩu gốc của bạn, xóa người dùng ẩn danh, không cho phép đăng nhập gốc từ xa và xóa các bảng thử nghiệm. Chọn một mật khẩu mạnh và trả lời các câu hỏi như mô tả bên dưới.
Mã:
$ sudo mysql_secure_installation[sudo] mật khẩu cho tên người dùng:LƯU Ý: KHUYẾN NGHỊ CHẠY TẤT CẢ CÁC PHẦN CỦA TỪNG PHÁP NÀY CHO TẤT CẢ CÁC MÁY CHỦ MariaDB ĐANG SỬ DỤNG TRONG SẢN XUẤT! VUI LÒNG ĐỌC KỸ TỪNG BƯỚC!Để đăng nhập vào MariaDB để bảo mật, chúng ta sẽ cần mật khẩu hiện tại của người dùng root. Nếu bạn vừa cài đặt MariaDB vàchưa đặt mật khẩu root, mật khẩu sẽ để trống,vì vậy bạn chỉ cần nhấn enter ở đây.Nhập mật khẩu hiện tại của root (enter nếu không có):OK, mật khẩu đã sử dụng thành công, tiếp tục...Đặt mật khẩu root đảm bảo rằng không ai có thể đăng nhập vào người dùng root MariaDB nếu không có quyền thích hợp.Đặt mật khẩu root? [Y/n] yMật khẩu mới:Nhập lại mật khẩu mới:Mật khẩu đã cập nhật thành công!Đang tải lại bảng đặc quyền.. ... Thành công!Theo mặc định, cài đặt MariaDB có một người dùng ẩn danh, cho phép bất kỳ aiđăng nhập vào MariaDB mà không cần phải tạo tài khoản người dùng chohọ. Điều này chỉ nhằm mục đích thử nghiệm và để quá trình cài đặtdiễn ra suôn sẻ hơn một chút. Bạn nên xóa những người dùng này trước khi chuyển sangmôi trường sản xuất.Xóa người dùng ẩn danh? [Y/n] y ... Thành công!Thông thường, root chỉ được phép kết nối từ 'localhost'. Điều nàyđảm bảo rằng không ai có thể đoán được mật khẩu root từ mạng.Không cho phép root đăng nhập từ xa? [Y/n] y ... Thành công!Theo mặc định, MariaDB đi kèm với một cơ sở dữ liệu có tên là 'test' mà bất kỳ ai cũng có thểtruy cập. Điều này cũng chỉ nhằm mục đích thử nghiệm và nên xóatrước khi chuyển sang môi trường sản xuất.Xóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] y - Đang xóa cơ sở dữ liệu thử nghiệm... ... Thành công! - Xóa các đặc quyền trên cơ sở dữ liệu thử nghiệm... ... Thành công!Tải lại các bảng đặc quyền sẽ đảm bảo rằng tất cả các thay đổi đã thực hiện cho đến naysẽ có hiệu lực ngay lập tức.Tải lại các bảng đặc quyền ngay bây giờ? [Y/n] y ... Thành công!Đang dọn dẹp...Xong! Nếu bạn đã hoàn tất tất cả các bước trên, thì cài đặt MariaDBcủa bạn hiện đã an toàn.Cảm ơn bạn đã sử dụng MariaDB!
Sau khi hoàn tất, bạn có thể đăng nhập vào shell MySQL bằng lệnh sau.
Mã:
$ sudo 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ế testdbtestuser bằng tên phù hợp với thiết lập của bạn. Thay thế password bằng mật khẩu mạnh.
Mã:
CREATE DATABASE testdb;CREATE USER 'testuser' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';FLUSH PRIVILEGES;
Thoát khỏi MySQL shell.
Mã:
thoát

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

Cấu hình Bảng điều khiển quản trị​

Thiết lập thông tin xác thực của bảng điều khiển quản trị viên.
Mã:
$ sudo /usr/local/lsws/admin/misc/admpass.shVui lòng chỉ định tên người dùng của quản trị viên.Đây là tên người dùng bắt buộc để đăng nhập vào giao diện web quản trị.Tên người dùng [admin]: Vui lòng chỉ định mật khẩu của quản trị viên.Đây là mật khẩu bắt buộc để đăng nhập vào giao diện web quản trị.Mật khẩu:Nhập lại mật khẩu:Tên người dùng/mật khẩu của quản trị viên đã được cập nhật thành công!
Bạn cũng có thể sử dụng lệnh này trong trường hợp bạn quên thông tin đăng nhập.

Để truy cập bảng quản trị, hãy mở http://:7080.

Khi đăng nhập lần đầu, trình duyệt của bạn sẽ đưa ra cảnh báo cho biết kết nối của bạn không phải là kết nối riêng tư. Nhấp vào Nâng cao và nhấp vào "Chấp nhận rủi ro và Tiếp tục" (trong trường hợp Firefox) hoặc "Tiến hành đến (unsafe)" (trong trường hợp trình duyệt dựa trên Chromium). Bạn sẽ không thấy cảnh báo nữa.

Bạn sẽ được chào đón bằng màn hình sau.


Chuyển cổng HTTP trở lại 80​

Chúng ta hãy thay đổi cổng HTTP mặc định thành 80. Đăng nhập vào bảng quản trị của bạn tại http://:7080 bằng thông tin đăng nhập bạn vừa tạo.

Bạn sẽ được chào đón bằng màn hình sau.



Truy cập phần Listeners ở bên trái. Bạn sẽ thấy các listeners mặc định có cổng 8080.



Nhấp vào nút View để xem cấu hình chi tiết. Ở trang tiếp theo, bên dưới Listener Default > Trang Chung, nhấp vào biểu tượng Chỉnh sửa và thay đổi cổng từ 8080 thành 80.





Nhấp vào Lưu rồi khởi động lại máy chủ bằng cách nhấp vào nút Khởi động lại Graceful.


Bước 6 - Cấu hình PHP​

Trong bước này, chúng ta cần liên kết bản sao PHP 7.4 của mình với máy chủ.

Nhấp vào phần Cấu hình máy chủ ở bên trái rồi nhấp vào tab Ứng dụng bên ngoài. Bạn sẽ thấy Ứng dụng LiteSpeed hiện có cho PHP 7.3. Chúng ta sẽ tạo Ứng dụng LiteSpeed của riêng mình cho PHP 7.4. Bạn có thể dễ dàng chuyển đổi giữa chúng sau này nếu muốn.



Nhấp vào nút Thêm để tạo ứng dụng mới. Đối với loại, hãy chọn Ứng dụng LiteSpeed SAPI và nhấp vào Tiếp theo.



Tiếp theo, thêm cấu hình bên dưới. Để trống tất cả các trường khác.
Mã:
Tên: lsphp74Địa chỉ: uds://tmp/lshttpd/lsphp.sockKết nối tối đa: 35Môi trường: PHP_LSAPI_MAX_REQUESTS=500 PHP_LSAPI_CHILDREN=35 LSAPI_AVOID_FORK=200MThời gian chờ yêu cầu ban đầu (giây): 60Thời gian chờ thử lại: 0Kết nối liên tục: CóĐệm phản hồi: khôngBắt đầu theo máy chủ: Có (Thông qua CGI Daemon)Lệnh: lsphp74/bin/lsphpNhật ký ngược: 100Số phiên bản: 1Mức độ ưu tiên: 0Giới hạn mềm bộ nhớ (byte): 2047MGiới hạn cứng bộ nhớ (byte): 2047MGiới hạn mềm quy trình: 1400Giới hạn cứng quy trình: 1500
Nhấp vào Lưu khi hoàn tất.



Bây giờ chúng ta đã tạo ứng dụng dựa trên PHP 7.4 của riêng mình, chúng ta cần yêu cầu máy chủ bắt đầu sử dụng ứng dụng đó.

Đi tới tab Trình xử lý tập lệnh và chỉnh sửa trình xử lý lsphp. Chuyển tên Handle thành lsphp74 từ trình đơn thả xuống.



Nhấp vào Lưu rồi khởi động lại máy chủ bằng cách nhấp vào nút Khởi động lại bình thường.

Để kiểm tra xem PHP của bạn đã được chuyển đổi đúng chưa, hãy truy cập http:///phpinfo.php trong trình duyệt của bạn.


Bước 7 - Thiết lập Máy chủ ảo​

Trước tiên, chúng ta cần tạo các thư mục cho máy chủ ảo của mình.
Mã:
$ sudo mkdir /usr/local/lsws/example.com/{html,logs} -p
Thư mục html sẽ chứa các tệp công khai và thư mục logs sẽ chứa các nhật ký máy chủ.

Tiếp theo, hãy mở Bảng điều khiển quản trị và truy cập Phần Virtual Hosts ở bên trái và nhấp vào nút Add.



Điền các giá trị theo chỉ định
Mã:
Tên máy chủ ảo: example.comGốc máy chủ ảo: $SERVER_ROOT/example.com/Tệp cấu hình: $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.confTheo liên kết tượng trưng: CóBật Scripts/ExtApps: CóHạn chế: CóChế độ đặt UID ứng dụng bên ngoài: UID máy chủ


Nhấp vào nút Lưu khi hoàn tất. Bạn sẽ nhận được lỗi sau vì tệp cấu hình hiện không tồn tại. Nhấp vào liên kết để tạo tệp cấu hình.



Nhấp vào nút Lưu một lần nữa để hoàn tất việc tạo Máy chủ ảo.

Sau khi máy chủ ảo được tạo, hãy chuyển đến Máy chủ ảo -> Chọn Virtual Host(example.com) -> General và sửa đổi cấu hình như đã cho.
Mã:
Document Root: $VH_ROOT/html/Domain Name: example.comEnable Compression: Yes


Click vào nút Save khi hoàn tất. Tiếp theo, chúng ta cần thiết lập các tệp chỉ mục. Click vào nút edit đối diện với Index files bên dưới phần General. Thiết lập các tùy chọn sau.
Mã:
Use Server Index Files: NoIndex files: index.php, index.html, index.htmAuto Index: No


Click Save khi hoàn tất. Tiếp theo, chúng ta cần chọn Log files. Đi đến phần Nhật ký và nhấp vào Chỉnh sửa đối với Nhật ký máy chủ ảo và điền các giá trị sau.
Mã:
Sử dụng Nhật ký của máy chủ: CóTên tệp: $VH_ROOT/logs/error.logMức nhật ký: LỖIKích thước cuộn (byte): 10M


Bạn có thể chọn Mức nhật kýDEBUG nếu bạn đang sử dụng máy sản xuất/phát triển.

Nhấp vào Lưu rồi nhấp vào dấu cộng trong phần Nhật ký truy cập để thêm mục mới. Điền các giá trị sau.
Mã:
Kiểm soát nhật ký: Tệp nhật ký riêngTên tệp: $VH_ROOT/logs/access.logGhi nhật ký theo đường ống: Chưa đặtĐịnh dạng nhật ký: Chưa đặtTiêu đề nhật ký: Chưa đặtKích thước cuộn (byte): 10MGiữ ngày: 30Nhật ký byte: Chưa đặtNén lưu trữ: Có


Nhấp vào Lưu khi hoàn tất. Tiếp theo, chúng ta cần định cấu hình Kiểm soát truy cập trong phần Bảo mật. Đặt các giá trị sau.
Mã:
Danh sách được phép: *Danh sách bị từ chối: Chưa đặt


Nhấp vào Lưu khi hoàn tất. Tiếp theo, chúng ta cần đặt Định nghĩa trình xử lý tập lệnh. Đặt các giá trị sau.
Mã:
Hậu tố: phpLoại trình xử lý: LiteSpeed SAPITên trình xử lý: [Mức máy chủ]: lsphp74


Tiếp theo, chúng ta cần đặt Kiểm soát ghi lại trong phần Ghi lại. Đặt các giá trị sau.



Và cuối cùng, chúng ta cần đặt Trình nghe. Đi đến phần Trình nghe và nhấp vào nút Xem đối với Trình nghe mặc định. Sau đó, nhấp vào nút Thêm đối với Ánh xạ máy chủ ảo để thêm ánh xạ mới và đặt các giá trị sau.



Nhấp vào Lưu khi hoàn tất. Bây giờ, hãy nhấp vào nút Khởi động lại Graceful để áp dụng tất cả các thay đổi ở trên và khởi động lại máy chủ.

Bước 8 - Thiết lập SSL​

Để thiết lập SSL trong OpenLiteSpeed, chúng ta cần thiết lập hai chứng chỉ. Một chứng chỉ tự ký cho toàn bộ máy chủ và một máy chủ Let's Encrypt dành riêng cho trang web.

Trước tiên, chúng ta hãy tạo Chứng chỉ tự ký.
Mã:
$ openssl req -x509 -days 365 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodesTạo khóa riêng RSA..++++......................++++ghi khóa riêng mới vào 'key.pem'-----Bạn sắp được yêu cầu nhập thông tin sẽ được đưa vàoyêu cầu chứng chỉ của bạn.Những gì bạn sắp nhập là cái được gọi là Tên phân biệt hoặc DN.Có khá nhiều trường nhưng bạn có thể để trống một số trườngĐối với một số trường sẽ có giá trị mặc định,Nếu bạn nhập '.', trường sẽ được để trống.-----Tên quốc gia (mã 2 chữ cái) [AU]:Tên tiểu bang hoặc tỉnh (tên đầy đủ) [Một số tiểu bang]:Tên địa phương (ví dụ: thành phố) []:Tên tổ chức (ví dụ: công ty) [Internet Widgits Pty Ltd]:Tên đơn vị tổ chức (ví dụ: bộ phận) []:Tên chung (ví dụ: FQDN của máy chủ hoặc tên CỦA BẠN) []:Địa chỉ email []:
Bạn có thể nhấn enter qua tất cả các trường và để trống chúng.

Các chứng chỉ hiện được lưu trữ tại thư mục /home/user. Chúng tôi sẽ cần thông tin này sau.

Để sử dụng Let's Encrypt, chúng tôi cần cài đặt công cụ Certbot.
Mã:
$ sudo apt install certbot
Lấy chứng chỉ SSL.
Mã:
$ sudo certbot certonly --webroot -w /usr/local/lsws/example.com/html/ -d example.com
Thực hiện theo lời nhắc tương tác.
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator webroot, Installer NoneNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]Bắt đầu kết nối HTTPS mới (1): acme-v01.api.letsencrypt.org------------------------------------------------------------------------------------------Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phải đồng ýđể đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory----------------------------------------------------------------------------------(A)gree/(C)ancel: A----------------------------------------------------------------------------------Bạn có sẵn lòng chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuậnphát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.----------------------------------------------------------------------------------(C)es/(K)o: KhôngNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho example.comSử dụng đường dẫn webroot /usr/local/lsws/example.com/html cho tất cả các miền không khớp.Đang chờ xác minh...Đang dọn dẹp các thử tháchLƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/example/fullchain.pem. Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/linode.nspeaks.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 04-09-2020. Để nhận phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot. Để gia hạn không tương tác *tất cả* các chứng chỉ của bạn, hãy chạy "certbot renew" - Thông tin đăng nhập tài khoản của bạn đã được lưu trong thư mục cấu hình Certbot của bạn tại /etc/letsencrypt. Bây giờ bạn nên sao lưu an toàn thư mục này. Thư mục cấu hình này cũng sẽ chứa các chứng chỉ và khóa riêng tư do Certbot thu thập được, do đó, việc sao lưu thường xuyên thư mục này là lý tưởng. - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le
Bây giờ hãy mở Bảng điều khiển quản trị và đi tới Listeners >> Add New Listener và thêm các giá trị sau.
Mã:
Tên Listener: SSLĐịa chỉ IP: BẤT KỲCổng: 443Bảo mật: Có


Nhấp vào Lưu khi hoàn tất. Tiếp theo, hãy đi đến phần Virtual Host Mappings bên dưới SSL Listener bằng cách nhấp vào SSL, nhấp vào nút Add và điền các giá trị sau.
Mã:
Virtual Host: example.comDomains: example.com


Nhấp vào Save khi hoàn tất.

Tiếp theo, hãy đi đến Listeners >> SSL Listener >> SSL Tab >>SSL Private Key & Certificate (nút Edit) và điền các giá trị sau cho chứng chỉ tự ký mà chúng ta đã tạo trước đó.
Mã:
Tệp khóa riêng: /home/user/key.pemTệp chứng chỉ: /home/user/cert.pemChứng chỉ liên kết: Có


Tiếp theo, hãy chuyển đến Máy chủ ảo >> example.com >> Tab SSL >> Khóa riêng SSL & Chứng chỉ (nút Chỉnh sửa) và điền các giá trị sau bằng Chứng chỉ Let's Encrypt.
Mã:
Tệp khóa riêng: /etc/letsencrypt/live/example.com/privkey.pemTệp chứng chỉ: /etc/letsencrypt/live/example.com/fullchain.pemChứng chỉ được liên kết: Có


Nhấp vào Lưu khi hoàn tất.

Khởi động lại máy chủ bằng cách nhấp vào nút khởi động lại Graceful.

Bước 9 - Trang web thử nghiệm​

Tạo tệp Kiểm tra trong thư mục html của bạn.
Mã:
$ sudo nano /usr/local/lsws/example.com/html/index.php
Dán mã sau vào trình chỉnh sửa Nano.
Mã:
 [HEADING=2]Kiểm tra cài đặt máy chủ OpenLiteSpeed[/HEADING]
Truy cập trang web của bạn tại https://example.com trong trình duyệt và bạn sẽ thấy trang sau.



Hướng dẫn này chỉ có vậy. Nếu bạn có bất kỳ câu hỏi nào, hãy gửi chúng trong phần bình luận bên dưới.
 
Back
Bên trên