Cách cài đặt LOMP Stack (OpenLiteSpeed, MySQL và PHP) trên Ubuntu 24.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ó hỗ trợ các quy tắc Apache Rewrite, HTTP/2 và HTTP/3, cũng như các giao thức TLS v1.3 và QUIC. 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.

LOMP Stack là từ viết tắt của Linux, OpenLiteSpeed, MySQL/MariaDB và PHP. Máy chủ Litespeed nổi tiếng với tốc độ của chúng, đặc biệt là với PHP, tích hợp bằng Giao diện lập trình ứng dụng máy chủ LiteSpeed (LSAPI). Trình thông dịch LiteSpeed PHP (LSPHP) phục vụ các trang PHP động thông qua LSAPI.

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Máy chủ OpenLiteSpeed trên Ubuntu 24.04.

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


  • Máy chủ chạy Ubuntu 24.04.

  • Người dùng không phải root có quyền sudo.

  • Tên miền đủ điều kiện (FQDN) như example.com trỏ đến máy chủ.

  • Đảm bảo mọi thứ đều đã cập nhật.
Mã:
$ sudo apt update
$ sudo apt upgrade
[*]
Một số gói mà hệ thống của bạn cần.
Mã:
$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.

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

Bước đầu tiên là cấu hình tường lửa. Debian đi kèm với ufw (Uncomplicated Firewall) theo mặc định.

Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Bạn sẽ nhận được kết quả sau.
Mã:
Status: inactive
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Mã:
$ sudo ufw allow OpenSSH
Cho phép cả cổng HTTP và HTTPS.
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mở các cổng liên quan đến Openlitespeed.
Mã:
$ sudo ufw allow 7080/tcp
Bật Tường lửa
Mã:
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Kiểm tra trạng thái của tường lửa một lần nữa.
Mã:
$ sudo ufw status
Bạn sẽ thấy kết quả tương tự.
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
7080/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
7080/tcp (v6) ALLOW Anywhere (v6)

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

Chúng tôi sẽ cài đặt OpenLiteSpeed bằng cách biên dịch từ mã nguồn. Tải xuống tệp mã nguồn OpenLiteSpeed. Bạn có thể lấy liên kết đến tệp mã nguồn mới nhất từ trang tải xuống chính thức của OpenLiteSpeed. Phiên bản 1.7.19 là phiên bản ổn định hiện tại có sẵn.
Mã:
$ wget https://openlitespeed.org/packages/openlitespeed-1.7.19.src.tgz
Trích xuất tập tin.
Mã:
$ tar -zxf openlitespeed-*.tgz
Chuyển đến thư mục đã giải nén.
Mã:
$ cd openlitespeed-1.7.19
Xây dựng máy chủ gói.
Mã:
$ sudo ./build.sh
Bạn có thể phải đợi khoảng 5-10 phút để quá trình hoàn tất. Bỏ qua mọi cảnh báo bạn nhận được trong quá trình này. Bạn sẽ nhận được kết quả đầu ra sau khi hoàn tất.
Mã:
...............
[100%] Linking CXX shared library modpagespeed.so
/usr/bin/ld: warning: 140.x25519-asm-x86_64.o.o: missing .note.GNU-stack section implies executable stack
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
[100%] Built target modpagespeed
Start to pack files.
-e Building finished, please run ./install.sh for installation.
-e You may want to update the ols.conf to change the settings before installation.
-e Enjoy.
Sau khi quá trình hoàn tất, hãy mở tệp ols.conf để chỉnh sửa.
Mã:
$ sudo nano ols.conf
Chỉnh sửa tệp như hiển thị bên dưới.
Mã:
#If you want to change the default values, please update this file.
#
SERVERROOT=/usr/local/lsws
OPENLSWS_USER=nobody
OPENLSWS_GROUP=nobody
OPENLSWS_ADMIN=navjot
[emailprotected]
OPENLSWS_ADMINSSL=yes
OPENLSWS_ADMINPORT=7080
USE_LSPHP7=yes
DEFAULT_TMP_DIR=/tmp/lshttpd
PID_FILE=/tmp/lshttpd/lshttpd.pid
OPENLSWS_EXAMPLEPORT=8088
#You can set password here
#OPENLSWS_PASSWORD=
Đừng thêm mật khẩu của bạn ở đây. Chúng tôi sẽ thiết lập mật khẩu sau bằng dòng lệnh. Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Bây giờ OpenLiteSpeed đã được xây dựng, hãy cài đặt nó.
Mã:
$ sudo ./install.sh
Tập lệnh cài đặt sẽ cài đặt và kích hoạt dịch vụ lsws cho máy chủ. Bạn sẽ nhận được kết quả sau khi hoàn tất.
Mã:
Updating webcache manager, please waiting ...
Downloading latest shared code tar file...
Checking tar file md5...
Removing existing shared code directory...
Extracting downloaded shared code...
Removing local shared code tar file...
Updating lscmctl script...
Done!
-e Installation finished, Enjoy!
-e Your webAdmin password is kXjWTl5j, written to file /usr/local/lsws/adminpasswd.
Khởi động máy chủ OpenLiteSpeed.
Mã:
$ sudo systemctl start lsws
Kiểm tra trạng thái của dịch vụ.
Mã:
$ sudo systemctl status lsws
? lshttpd.service - OpenLiteSpeed HTTP Server Loaded: loaded (/usr/lib/systemd/system/lshttpd.service; enabled; preset: enabled) Active: active (running) since Sun 2024-06-02 12:58:44 UTC; 3s ago Process: 52583 ExecStart=/usr/local/lsws/bin/lswsctrl start (code=exited, status=0/SUCCESS) Main PID: 52604 (litespeed) CGroup: /system.slice/lshttpd.service ??52604 "openlitespeed (lshttpd - main)" ??52610 "openlitespeed (lscgid)" ??52623 "openlitespeed (lshttpd - #01)" ??52624 lsphp
Jun 02 12:58:42 lompserver systemd[1]: Starting lshttpd.service - OpenLiteSpeed HTTP Server...
Jun 02 12:58:42 lompserver lswsctrl[52583]: [OK] litespeed: pid=52604.
Jun 02 12:58:44 lompserver systemd[1]: Started lshttpd.service - OpenLiteSpeed HTTP Server.
Kiểm tra phiên bản máy chủ đã cài đặt.
Mã:
$ /usr/local/lsws/bin/lshttpd -v
LiteSpeed/1.7.19 Open (BUILD built: Tue Apr 16 15:14:26 UTC 2024) module versions: lsquic 3.3.2 modgzip 1.1 cache 1.66 mod_security 1.4 (with libmodsecurity v3.0.12)

Tạo mật khẩu quản trị viên​

Bạn có thể sử dụng mật khẩu quản trị viên được cung cấp trong quá trình cài đặt. Tuy nhiên, bạn nên tạo mật khẩu của riêng mình bằng cách đặt lại mật khẩu. Chạy tập lệnh đặt lại mật khẩu.
Mã:
$ sudo /usr/local/lsws/admin/misc/admpass.sh
Bạn sẽ nhận được kết quả đầu ra sau. Chọn tên người dùng và đặt mật khẩu mạnh.
Mã:
Please specify the user name of administrator.
This is the user name required to login the administration Web interface.
User name [admin]: navjot
Please specify the administrator's password.
This is the password required to login the administration Web interface.
Password:
Retype password:
Administrator's username/password is updated successfully!
Bây giờ bạn có thể sử dụng mật khẩu quản trị viên mới.

Mở http://:7080 để truy cập bảng quản trị của OpenLiteSpeed. Khi đăng nhập lần đầu, trình duyệt của bạn sẽ cảnh báo rằng 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ẽ thấy trang đăng nhập.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22452%22%20height=%22529%22%3E%3C/svg%3E


Nhập thông tin xác thực bạn đã đặt trước đó và nhấn nút Đăng nhập để tiếp tục.

Bạn sẽ thấy màn hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22450%22%3E%3C/svg%3E

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

Trước khi tiến hành cài đặt MySQL, chúng ta cần cập nhật kho lưu trữ LiteSpeed. Kho lưu trữ Litespeed được thêm qua trình cài đặt không hoạt động bình thường.

Mở tệp /etc/apt/sources.list.d/lst_debian_repo.list để chỉnh sửa.
Mã:
$ sudo nano /etc/apt/sources.list.d/lst_debian_repo.list
Thay đổi nội dung tệp bằng cách thêm tên bản phát hành Ubuntu 24.04 (noble) vào URL kho lưu trữ.
Mã:
deb http://rpms.litespeedtech.com/debian/ noble main
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cài đặt MySQL máy chủ.
Mã:
$ sudo apt install mysql-server
Dịch vụ MySQL được tự động khởi động và chạy sau khi cài đặt.

Kiểm tra trạng thái của dịch vụ.
Mã:
$ sudo systemctl status mysql
Bạn sẽ nhận được kết quả sau.
Mã:
? mysql.service - MySQL Community Server Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled) Active: active (running) since Sun 2024-06-02 13:42:12 UTC; 8min ago Process: 57889 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 57898 (mysqld) Status: "Server is operational" Tasks: 37 (limit: 2263) Memory: 370.6M (peak: 386.9M) CPU: 6.762s CGroup: /system.slice/mysql.service ??57898 /usr/sbin/mysqld
Jun 02 13:42:11 lompserver systemd[1]: Starting mysql.service - MySQL Community Server...
Chạy tập lệnh bảo mật MySQL.
Mã:
$ sudo mysql_secure_installation
Bạn sẽ được yêu cầu cài đặt . Nhấn Y để tiếp tục.
Mã:
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: y
Tiếp theo, bạn sẽ được yêu cầu chọn độ mạnh của mật khẩu. Chọn 2 cho Mạnh và tiếp tục.
Mã:
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Cài đặt MySQL sẽ không yêu cầu bạn đặt mật khẩu gốc vì loại xác thực mặc định là auth_socket tùy thuộc vào xác thực hệ thống Linux của bạn. Tuy nhiên, bạn có thể thay đổi sau.
Mã:
Skipping password set for root as authentication with auth_socket is used by default.
If you would like to use password authentication instead, this can be done with the "ALTER_USER" command.
See https://dev.mysql.com/doc/refman/8.0/en/alter-user.html#alter-user-password-management for more information.
Tiếp theo, bạn sẽ được hỏi một số câu hỏi nhất định để cải thiện bảo mật MySQL. Nhập Y để xóa người dùng ẩn danh, không cho phép đăng nhập root từ xa, xóa cơ sở dữ liệu thử nghiệm và tải lại các bảng đặc quyền.
Mã:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL 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? (Press y|Y for Yes, any other key for No) : y
Success.
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? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL 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? (Press y|Y for Yes, any other key for No) : y - Dropping test database...
Success. - Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
Bạn có thể vào shell MySQL bằng cách nhập sudo mysql trên dòng lệnh.

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

Vì chúng tôi đã xây dựng gói của mình từ nguồn, nó biên dịch và xây dựng một phiên bản PHP cũ không được khuyến khích sử dụng. Bạn có thể kiểm tra thông qua lệnh sau.
Mã:
$ /usr/local/lsws/fcgi-bin/lsphp -v
PHP 5.6.40 (litespeed) (built: May 10 2023 23:03:31)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
Do đó, chúng ta cần xây dựng và cài đặt phiên bản PHP mới nhất. Tuy nhiên, trước khi tiến hành, chúng ta cần cài đặt các công cụ xây dựng.
Mã:
$ sudo apt install build-essential autoconf libtool bison re2c pkg-config
Bước tiếp theo là cài đặt các gói cần thiết cho quy trình xây dựng PHP.
Mã:
$ sudo apt install libssl-dev libsqlite3-dev zlib1g-dev libcurl4-openssl-dev libonig-dev libzip-dev libmemcached-dev libreadline-dev libgmp-dev libpng-dev libjpeg-dev libwebp-dev libxpm-dev libicu-dev libfreetype6-dev libxslt-dev libldb-dev libtidy-dev libvips-dev libsodium-dev libavif-dev libldap2-dev libxml2-dev libkrb5-dev libc-client2007e-dev libpq-dev libargon2-1 libargon2-dev libbz2-dev libffi-dev libc-client-dev libpspell-dev flex libgmp3-dev libmcrypt-dev libmhash-dev freetds-dev libmysqlclient-dev libncurses5-dev libpcre3-dev libaspell-dev librecode-dev libsnmp-dev
Tiếp theo, tải xuống mã nguồn PHP. Chúng tôi sẽ tải xuống phiên bản PHP 8.3.7, đây là phiên bản mới nhất có sẵn tại thời điểm viết bài.
Mã:
$ cd ~
$ wget https://www.php.net/distributions/php-8.3.7.tar.gz
Giải nén các tệp.
Mã:
$ tar -xzf php-8.3.7.tar.gz
Chuyển sang phiên bản đã tải xuống thư mục.
Mã:
$ cd php-8.3.7
Tiếp theo, chạy tập lệnh cấu hình với các tùy chọn sau. Tùy chọn --enable-litespeed là cần thiết.
Mã:
$ sudo ./configure --prefix=/usr/local/lsws/lsphp83 --enable-bcmath --enable-calendar --enable-exif --enable-ftp --enable-gd --enable-intl --enable-mbregex --enable-mbstring --enable-mysqlnd --enable-opcache --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --with-avif --with-curl --with-ffi --with-freetype --with-gettext --with-gmp --with-imap --with-imap-ssl --with-jpeg --with-kerberos --with-libxml --with-ldap --with-mysqli --with-mysql-sock=/run/mysqld/mysqld.sock --with-openssl --with-password-argon2 --with-pdo-mysql=mysqlnd --with-pdo-pgsql=/usr/bin/pg_config --with-pear --with-pspell --with-readline --with-sodium --with-tidy --with-webp --with-xpm --with-xsl --with-zip --with-zlib --enable-litespeed
Bạn sẽ nhận được kết quả sau khi tập lệnh được thực hiện hoàn thành.
Mã:
+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+
Thank you for using PHP.
Biên dịch nguồn.
Mã:
$ sudo make -j $(nproc)
Bạn sẽ nhận được kết quả tương tự sau khi hoàn tất.
Mã:
Generating phar.php
Generating phar.phar
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
directorytreeiterator.inc
phar.inc
invertedregexiterator.inc
directorygraphiterator.inc
pharcommand.inc
clicommand.inc
Build complete.
Don't forget to run 'make test'.
Sau khi hoàn tất, hãy chạy lệnh sau để thử và kiểm tra phiên bản.
Mã:
$ ./sapi/litespeed/php -v
PHP 8.3.7 (litespeed) (built: Jun 3 2024 05:28:43)
Copyright (c) The PHP Group
Zend Engine v4.3.7, Copyright (c) Zend Technologies
Cài đặt PHP.
Mã:
$ sudo make install
Bạn sẽ nhận được kết quả sau.
Mã:
Installing shared extensions: /usr/local/lsws/lsphp83/lib/php/extensions/no-debug-non-zts-20230831/
Installing PHP CLI binary: /usr/local/lsws/lsphp83/bin/
Installing PHP CLI man page: /usr/local/lsws/lsphp83/php/man/man1/
Installing PHP LiteSpeed binary: /usr/local/lsws/lsphp83/bin/
Installing phpdbg binary: /usr/local/lsws/lsphp83/bin/
Installing phpdbg man page: /usr/local/lsws/lsphp83/php/man/man1/
Installing PHP CGI binary: /usr/local/lsws/lsphp83/bin/
Installing PHP CGI man page: /usr/local/lsws/lsphp83/php/man/man1/
Installing build environment: /usr/local/lsws/lsphp83/lib/php/build/
Installing header files: /usr/local/lsws/lsphp83/include/php/
Installing helper programs: /usr/local/lsws/lsphp83/bin/ program: phpize program: php-config
Installing man pages: /usr/local/lsws/lsphp83/php/man/man1/ page: phpize.1 page: php-config.1
Installing PEAR environment: /usr/local/lsws/lsphp83/lib/php/
[PEAR] Archive_Tar - installed: 1.4.14
[PEAR] Console_Getopt - installed: 1.4.3
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util - installed: 1.4.5
warning: pear/PEAR dependency package "pear/Archive_Tar" installed version 1.4.14 is not the recommended version 1.4.4
[PEAR] PEAR - installed: 1.10.15
Wrote PEAR system config file at: /usr/local/lsws/lsphp83/etc/pear.conf
You may want to add: /usr/local/lsws/lsphp83/lib/php to your php.ini include_path
Installing PDO headers: /usr/local/lsws/lsphp83/include/php/ext/pdo/
Xác minh cài đặt PHP. Có hai tệp nhị phân PHP có sẵn trong thư mục /usr/local/lsws/lsphp83/bin. Một là phiên bản bình thường php là phiên bản dòng lệnh và phiên bản còn lại là phiên bản Litespeed lsphp. Cái thứ hai là cái chúng ta sẽ sử dụng.
Mã:
$ /usr/local/lsws/lsphp83/bin/lsphp -v
PHP 8.3.7 (litespeed) (built: Jun 3 2024 05:28:43)
Copyright (c) The PHP Group
Zend Engine v4.3.7, Copyright (c) Zend Technologies
Bạn có thể kiểm tra danh sách các mô-đun PHP đã bật.
Mã:
$ /usr/local/lsws/lsphp83/bin/php --modules
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
imap
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
Phar
posix
pspell
random
readline
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
sysvsem
sysvshm
tidy
tokenizer
xml
xmlreader
xmlwriter
xsl
zip
zlib
[Zend Modules]
Sao chép php.ini-production từ thư mục cài đặt đến /usr/local/lsws/lsphp83/lib thư mục.
Mã:
$ sudo cp php.ini-production /usr/local/lsws/lsphp83/lib/php.ini
Chúng tôi sẽ cấu hình OpenLiteSpeed để hoạt động với PHP sau.

Mở php.ini cho chỉnh sửa.
Mã:
$ sudo nano /usr/local/lsws/lsphp83/lib/php.ini
Tìm biến include_path và thay đổi giá trị của nó như được hiển thị bên dưới.
Mã:
$ ;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2"
include_path = "/usr/local/lsws/lsphp83/lib/php"
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

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

Đăng nhập vào shell MySQL.
Mã:
$ sudo mysql
Tạo cơ sở dữ liệu thử nghiệm. Thay thế testdb bằng tên cơ sở dữ liệu phù hợp theo lựa chọn của bạn.
Mã:
mysql> CREATE DATABASE testdb;
Tạo người dùng thử nghiệm. Thay thế testuser bằng tên người dùng phù hợp. Thay thế Your_Password123 bằng mật khẩu mạnh.
Mã:
mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'Your_Password123';
Cấp tất cả các quyền trên cơ sở dữ liệu cho người dùng.
Mã:
mysql> GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
Xóa quyền người dùng.
Mã:
mysql> FLUSH PRIVILEGES;
Thoát khỏi MySQL shell.
Mã:
mysql> exit

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

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.

Truy cập phần Người nghe ở bên trái. Bạn sẽ thấy các trình lắng nghe mặc định có cổng 8080.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22213%22%3E%3C/svg%3E


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


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22300%22%3E%3C/svg%3E



data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22460%22%3E%3C/svg%3E


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


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22281%22%20height=%2280%22%3E%3C/svg%3E


Mở URL http:// trong trình duyệt của bạn và bạn sẽ nhận được trang sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22507%22%3E%3C/svg%3E

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

Trong bước này, chúng ta cần liên kết bản sao PHP 8.3 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. Chúng tôi sẽ chỉnh sửa một số nội dung.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E


Nhấp vào nút Chỉnh sửa để chỉnh sửa ứng dụng PHP.

Tiếp theo, khớp cấu hình như hiển thị bên dưới. Để trống tất cả các trường khác.
Mã:
Name: lsphp
Address: uds://tmp/lshttpd/lsphp.sock
Max Connections: 35
Environment: PHP_LSAPI_MAX_REQUESTS=500 PHP_LSAPI_CHILDREN=35 LSAPI_AVOID_FORK=200M
Initial Request Timeout (secs): 60
Retry Timeout : 0
Persistent Connection: Yes
Response Buffering: no
Start By Server: Yes(Through CGI Daemon)
Command: lsphp83/bin/lsphp
Back Log: 100
Instances: 1
Priority: 0
Memory Soft Limit (bytes): 2047M
Memory Hard Limit (bytes): 2047M
Process Soft Limit: 1400
Process Hard Limit: 1500
Nhấp vào Lưu khi hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22242%22%3E%3C/svg%3E


Bây giờ chúng ta đã tạo ứng dụng PHP 8.3 của riêng mình, chúng ta phải yêu cầu máy chủ bắt đầu sử dụng ứng dụng đó. Vì chúng ta đã chỉnh sửa danh sách mặc định nên danh sách đó đã được định cấu hình. Khởi động lại máy chủ bằng cách nhấp vào nút Khởi động lại một cách 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.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22681%22%3E%3C/svg%3E

Khởi động lại PHP​

Trên OpenLiteSpeed, nếu bạn chỉnh sửa php.ini hoặc cài đặt một mô-đun PHP mới, việc khởi động lại máy chủ sẽ không hiển thị các thay đổi. Bạn sẽ cần phải khởi động lại quy trình PHP cho việc đó. Trước tiên, bạn sẽ cần phải xác định vị trí ID quy trình cho quy trình lsphp.
Mã:
$ ps aux | grep lsphp
nobody 120093 0.0 0.8 123772 32920 ? S 06:35 0:00 lsphp
nobody 120111 0.0 0.4 123772 18980 ? Ss 06:38 0:00 lsphp
navjot 120139 0.0 0.0 6544 2304 pts/0 S+ 06:44 0:00 grep --color=auto lsphp
Hủy thủ công lsphp các tiến trình.
Mã:
$ sudo kill -9 120093
$ sudo kill -9 120111
Khởi động lại Máy chủ.
Mã:
$ sudo systemctl restart lsws

Bước 8 - Tạo VirtualHost​

Đầu 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 nhật ký máy chủ.

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


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22242%22%3E%3C/svg%3E


Điền các giá trị theo chỉ định
Mã:
Virtual Host Name: example.com
Virtual Host Root: $SERVER_ROOT/example.com/
Config File: $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf
Follow Symbolic Link: Yes
Enable Scripts/ExtApps: Yes
Restrained: Yes
External App Set UID Mode: Server UID

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22430%22%3E%3C/svg%3E


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.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22346%22%3E%3C/svg%3E


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 vào Máy chủ ảo -> Chọn Máy chủ ảo (example.com) -> Chung và sửa đổi cấu hình như đã cho.
Mã:
Document Root: $VH_ROOT/html/
Domain Name: example.com
Enable GZIP Compression: Yes
Enable Brotli Compression: Yes

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22527%22%3E%3C/svg%3E


Nhấp vào nút Lưu khi hoàn tất. Tiếp theo, chúng ta cần thiết lập các tệp chỉ mục. Nhấp vào nút chỉnh sửa đối với Tệp chỉ mục bên dưới Phần Chung. Thiết lập các tùy chọn sau.
Mã:
Use Server Index Files: No
Index files: index.php, index.html, index.htm
Auto Index: No

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22388%22%3E%3C/svg%3E


Nhấp vào Lưu khi hoàn tất. Tiếp theo, chúng ta cần chọn Tệp nhật ký. Đi đến phần Nhật ký, nhấp vào Chỉnh sửa đối với Nhật ký máy chủ ảo và điền vào các giá trị sau. Giữ nguyên các thiết lập khác.
Mã:
Use Server’s Log: Yes
File Name: $VH_ROOT/logs/error.log
Log Level: ERROR
Rolling Size (bytes): 10M
Keep Days: 30
Compress Archive: Not Set

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22303%22%3E%3C/svg%3E


Bạn có thể chọn Mức nhật kýDEBUG nếu bạn đang sử dụng máy 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ã:
Log Control: Own Log File
File Name: $VH_ROOT/logs/access.log
Piped Logger: Not Set
Log Format: Not Set
Log Headers: Not Set
Rolling Size (bytes): 10M
Keep Days: 30
Compress Archive: Not Set
Bytes log: Not Set

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22416%22%3E%3C/svg%3E


Nhấp vào Lưu khi hoàn tất. Tiếp theo, chúng ta cần 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ã:
Allowed List: *
Denied List: Not set

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22245%22%3E%3C/svg%3E


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. Nhấp vào dấu cộng (+) để thêm định nghĩa mới. Đặt các giá trị sau.
Mã:
Suffixes: php
Handler Type: LiteSpeed SAPI
Handler Name: [Server Level]: lsphp

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22175%22%3E%3C/svg%3E


Nhấp vào Lưu khi hoàn tất. Tiếp theo, chúng ta cần đặt Điều khiển ghi lại trong phần Ghi lại. Đặt các giá trị sau.
Mã:
Enable Rewrite: Yes
Auto Load from .htaccess: Yes
Log Level: Not Set

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22223%22%3E%3C/svg%3E


Nhấp Lưu khi hoàn tất. Và cuối cùng, chúng ta cần đặt Listener. Đi đến phần Listeners và nhấp vào nút View đối diện với Default Listener. 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.
Mã:
Virtual Host: example.com
Domains: example.com

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22124%22%3E%3C/svg%3E


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

Bước 9 - Cài đặt SSL​

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

Bảng quản trị đã đi kèm với chứng chỉ tự ký được cài đặt sẵn có trong thư mục /usr/local/lsws/admin/conf.

Trước tiên, chúng ta hãy tạo Chứng chỉ tự ký cho toàn bộ máy chủ.
Mã:
$ cd ~
$ openssl req -x509 -days 365 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes
Bạn sẽ nhận được đầu ra tương tự.
Mã:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:[emailprotected]
Bạn có thể nhấn enter qua tất cả các trường và để trống. Điền tên miền của bạn vào mục Tên chung và địa chỉ email của bạn.

Tạo thư mục cho các chứng chỉ tự ký.
Mã:
$ sudo mkdir /usr/local/lsws/certs
Sao chép chứng chỉ vào /usr/local/lsws/certs thư mục.
Mã:
$ sudo mv *.pem /usr/local/lsws/certs
Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL miễn phí do Let's Encrypt cung cấp.

Bạn có thể cài đặt Certbot bằng kho lưu trữ của Debian hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng ta sẽ sử dụng phiên bản Snapd. Ubuntu 24.04 đi kèm với Snapd được cài đặt sẵn.

Chạy các lệnh sau để đảm bảo rằng phiên bản Snapd của bạn được cập nhật.
Mã:
$ sudo snap install core
$ sudo snap refresh core
Phát hành lệnh sau để cài đặt Certbot.
Mã:
$ sudo snap install --classic certbot
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy bằng cách tạo liên kết tượng trưng đến thư mục /usr/bin.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Xác minh cài đặt.
Mã:
$ certbot --version
certbot 2.10.0
Chạy lệnh sau để tạo Chứng chỉ SSL.

Lấy chứng chỉ SSL. Thư mục webroot được đặt thành thư mục HTML công khai được cấu hình trước đó.
Mã:
$ sudo certbot certonly --webroot -w /usr/local/lsws/example.com/html/ --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d example.com
Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Kiểm tra trình lập lịch gia hạn Certbot dịch vụ.
Mã:
$ sudo systemctl list-timers
Bạn sẽ thấy snap.certbot.renew.service là một trong những dịch vụ được lên lịch chạy.
Mã:
NEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2024-06-03 07:20:00 UTC 5min Mon 2024-06-03 07:10:02 UTC 4min 11s ago sysstat-collect.timer sysstat-collect.service
Mon 2024-06-03 08:29:00 UTC 1h 14min - - snap.certbot.renew.timer snap.certbot.renew.service
Mon 2024-06-03 08:50:32 UTC 1h 36min Mon 2024-06-03 07:04:04 UTC 10min ago fwupd-refresh.timer fwupd-refresh.service
Để kiểm tra xem quá trình gia hạn SSL có hoạt động tốt không, hãy chạy thử quy trình.
Mã:
$ sudo certbot renew --dry-run
Nếu không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.

Bây giờ hãy mở Bảng điều khiển quản trị, đi tới Người nghe >> Thêm Trình nghe mới và thêm các giá trị sau.
Mã:
Listener Name: SSL
IP Address: ANY IPv4
Port: 443
Secure: Yes

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22564%22%3E%3C/svg%3E


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 vào các giá trị sau.
Mã:
Virtual Host: example.com
Domains: example.com

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22124%22%3E%3C/svg%3E


Nhấp vào Save khi hoàn tất. Tiếp theo, hãy đi đến Listeners >> SSL Listener >> Tab SSL >>Khóa riêng tư SSL & Chứng chỉ (nút Chỉnh sửa) và điền các giá trị sau cho chứng chỉ tự ký mà chúng ta đã tạo trước đó.
Mã:
Private Key File: $SERVER_ROOT/certs/key.pem
Certificate File: $SERVER_ROOT/certs/cert.pem
Chained Certificate: Yes

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22352%22%3E%3C/svg%3E


Nhấp vào Lưu khi hoàn tất. Tiếp theo, hãy đi đến Người nghe >> SSL Listener >> SSL Tab >> Giao thức SSL (nút Chỉnh sửa) và điền các giá trị sau cho giao thức SSL và thông tin chi tiết về mã hóa.
Mã:
Protocol Version: TLS v1.2 TLS v1.3
Ciphers: ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
Enable ECDH Key Exchange: Yes
Enable DH Key Exchange: Yes
DH Parameter: /etc/ssl/certs/dhparam.pem

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22296%22%3E%3C/svg%3E


Nhấp vào Lưu khi hoàn tất. Tiếp theo, hãy vào Máy chủ ảo >> example.com >> Tab SSL >> Khóa riêng tư 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ã:
Private Key File: /etc/letsencrypt/live/example.com/privkey.pem
Certificate File: /etc/letsencrypt/live/example.com/fullchain.pem
Chained Certificate: Yes

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22282%22%3E%3C/svg%3E


Nhấp vào Lưu khi hoàn tất. Tiếp theo, hãy đi tới Máy chủ ảo >> example.com >> Tab SSL >> OCSP Stapling (nút Chỉnh sửa) và điền các giá trị sau để bật OCSP Stapling.
Mã:
Enable OCSP Stapling: Yes
OCSP Response Max Age(Secs): 300
OCSP Responder: http://r3.o.lencr.org

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22256%22%3E%3C/svg%3E


Nhấp vào Lưu khi hoàn tất. Tiếp theo, hãy đi đến Máy chủ ảo >> example.com >> Tab SSL >> Bảo mật (nút Chỉnh sửa) và điền vào các giá trị sau để bật giao thức HTTP3/QUIC.
Mã:
ALPN: Enable HTTP/2 and HTTP/3
Enable HTTP3/QUIC: Yes
Chúng ta không cần bật các tùy chọn khác vì chúng được bật theo mặc định.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22341%22%3E%3C/svg%3E


Nhấp 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 10 - 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 Nano biên tập viên.
Mã:
 [HEADING=2]OpenLiteSpeed Server Install Test[/HEADING]
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Mở URL https://example.com trong trình duyệt và bạn sẽ thấy trang sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22372%22%20height=%22171%22%3E%3C/svg%3E


Trang web thử nghiệm hoạt động đầy đủ. Bạn có thể bắt đầu sử dụng máy chủ để phục vụ các trang web và ứng dụng PHP động.

Kết luận​

Bài hướng dẫn về cài đặt LOMP Stack (OpenLiteSpeed, MySQL và PHP) trên máy chủ Ubuntu 24.04 của chúng tôi đã kết thúc. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên