Giới thiệu

Ở bài viết này chúng ta sẽ tiến hành tạo một website WordPress thông qua Docker Compose với các dịch vụ OpenLiteSpeed, MariaDB, PhpMyAdmin trên Ubuntu 22.04. Và trước khi đi vào cài đặt, các bạn cần đảm bảo giúp mình các điều kiện cần thiết bên dưới

Điều kiện máy chủ cần đáp ứng:

  1. Cài đặt Docker trên Ubuntu 22.04
  2. Cài đặt Docker Compose trên Ubuntu 22.04.
  3. Domain phải được trỏ đến IP máy chủ

Hãy đảm bảo rằng bạn đã hoàn thành các thành phần được nêu ở trên.

Nếu đã đáp ứng đủ các điều kiện trên, bây giờ chúng ta sẽ tiến hành cài đặt và cấu hình website WordPress.

Bước 1: Tải ols-docker-env

Bây giờ chúng ta sẽ cài đặt và sử dụng package ols-docker-env từ litespeedtech , là công ty tạo ra LiteSpeed, OpenLiteSpeed và LiteSpeed Cache.

cd /home
git clone https://github.com/litespeedtech/ols-docker-env.git
Tiếp đó bạn di chuyển vào thư mục ols-docker-env với lệnh:
cd ols-docker-env
CleanShot 2022 05 17 at 14.13.54

Bước 2: Tìm hiểu cấu trúc thư mục

Cấu trúc thư mục sẽ có dạng như sau

├── acme
├── bin
│   └── container
├── data
│   └── db
├── logs
│   ├── access.log
│   ├── error.log
│   ├── lsrestart.log
│   └── stderr.log
├── lsws
│   ├── admin-conf
│   └── conf
├── sites
│   └── localhost
├── LICENSE
├── README.md
└── docker-compose.yml
  • acme: chứa các chứng chỉ SSL được tạo ra bởi Let’s Encrypt
  • bin: chứa các mã CLI giúp tạo virtual hosts, cài đặt ứng dụng,…
  • data: chứa MySQL database=
  • logs: chứa các file logs của web server và virtual hosts
  • lsws: chứa các file cấu hình web server
  • sites: chứa nội dung của website.

Bước 3: Kích hoạt Container

Trước khi đi vào kích hoạt Container, chúng ta sẽ cần sửa lại một chút thông tin.

  • Chỉnh sửa nội dung file .env
nano .env

Đây là nội dung mặc định của file

TimeZone=America/New_York
OLS_VERSION=1.7.15
PHP_VERSION=lsphp80
MYSQL_DATABASE=wordpress
MYSQL_ROOT_PASSWORD=password
MYSQL_USER=wordpress
MYSQL_PASSWORD=password
DOMAIN=localhost

Và chúng ta sẽ sửa và thay các thông tin cũ thành thông tin của chúng ta với cụ thể:

  • TimeZone: Các bạn sửa thành Asia/Ho_Chi_Minh
  • PHP_VERSION: Các bạn sẽ điền phiên bản PHP mà bạn muốn cài đặt, ví dụ PHP 7.4 thì bạn điền lsphp74
  • Phần thông tin Database thì các bạn có thể đặt tên và passwd tùy theo nhu cầu của mình.

Thông tin mới sau khi sửa của mình sẽ như sau:

TimeZone=Asia/Ho_Chi_Minh
OLS_VERSION=1.7.15
PHP_VERSION=lsphp74
MYSQL_DATABASE=htk_db
MYSQL_ROOT_PASSWORD=htk_root
MYSQL_USER=htk_db
MYSQL_PASSWORD=htk_2022
DOMAIN=localhost
  • Sau khi đã chỉnh sửa xong thông tin, bây giờ các bạn kích hoạt container lên với lệnh:
docker-compose up -d

Khi chạy hoàn tất thì kết quả sẽ như hình.

CleanShot 2022 05 17 at 14.34.45

Bây giờ bạn có thể ra trình duyệt và gõ tên IP máy chủ để xem kết quả, nếu truy cập ra hình như bên dưới là bạn đã cài đặt thành công. Và lỗi 404 là do thư mục chứa dữ liệu website chưa có gì nên sẽ hiển thị như vậy thôi nhé, các bạn không cần lo lắng.

CleanShot 2022 05 17 at 14.32.54

Bước 4: Cấu hình OpenLiteSpeed

Để thay đổi cấu hình của OpenLiteSpeed, bạn truy cập Weddmin theo địa chỉ sau:

https://<IP-Address>:7080

Giao diện Weddmin sẽ hiển thị như hình.

CleanShot 2022 05 17 at 14.40.21

Để đăng nhập vào Weddmin, thì user mặc định là admin, còn pass thì các bạn sẽ thực hiện reset với lệnh bên dưới:

bash bin/webadmin.sh matkhaumoi

Lưu ý: Bạn nhớ thay matkhaumoi bằng mật khẩu của bạn.

CleanShot 2022 05 17 at 14.43.23

Tiếp đó bạn sử dụng thông tin vừa reset để đăng nhập vào Weddmin, đăng nhập thành công bạn sẽ được giao diện như hình.

CleanShot 2022 05 17 at 14.44.24

Bây giờ bạn hãy cài đặt thêm OWASP ModSecurity để tăng bảo mật cho OpenLiteSpeed với lệnh:

bash bin/webadmin.sh --mod-secure enable

Cài đặt thành công kết quả sẽ trả về như hình:

CleanShot 2022 05 17 at 14.48.21

Bước 5: Thêm tên miền và virtual hosts

Để thêm tên miền mới vào các bạn sử dụng lệnh bên dưới.

bash bin/domain.sh -add docker.hoangthienkim.vn

Lưu ý: Nhớ thay docker.hoangthienkim.vn bằng tên miền của bạn.

Và để xóa một website đã thêm , các bạn có thể sử dụng lệnh.

bash bin/domain.sh -del docker.hoangthienkim.vn

Bước 6: Cài đặt chứng chỉ SSL miễn phí

Trước khi đi vào cài đặt SSL cho website, bạn cần đảm bảo rằng website đã được trỏ bản ghi A về IP máy chủ đúng với điều kiện ở đầu bài. Nếu đã hoàn thành phần này, hãy tiếp tục cài đặt chứng chỉ SSL theo cách lệnh bên dưới:

Cài đặt ACME, công cụ tạo chứng chỉ SSL miễn phí từ Let’s Encrypt

./bin/acme.sh --install --email it@hoangthienkim.vn

Lưu ý: Thay it@hoangthienkim.vn bằng email của bạn.

Tạo chứng chỉ SSL cho tên miền docker.hoangthienkim.vn
./bin/acme.sh --domain docker.hoangthienkim.vn

Mặc định, ACME sẽ dùng hệ thống cấp chứng chỉ của ZeroSSL thay cho Let’s Encrypt. Và sau ít phút thì quá trình cài đặt đã thành công và kết quả sẽ hiển thị.

Bước 7: Cài đặt WordPress

Trước khi cài đặt WordPress, bạn cần tạo database cho tên miền. Có 2 cách như sau::

Tạo Database tự động

bash bin/database.sh --domain docker.hoangthienkim.vn

Hệ thống sẽ tự tạo Database sẵn cho bạn và cung cấp thông tin tương tự.

Tạo Database thủ công

Nếu muốn chủ động thiết lập tên Database, Username và Password, bạn cần gõ lệnh dài hơn và điền các thông tin Database mà bạn cần vào.

bash bin/database.sh --domain docker.hoangthienkim.vn --user USERNAME --password PASSWORD --database DATABASE_NAME

Sau khi tạo Database xong, bây giờ chúng ta đi vào cài đặt WordPress với lệnh:

./bin/appinstall.sh --app wordpress --domain docker.hoangthienkim.vn

Bây giờ các bạn hãy mở trình duyệt và truy cập vào website để hoàn thành bước cài đặt WordPres cuối cùng. Đến phần thiết lập Database, bạn hãy nhập thông tin Database đã tạo ở trên vào là được nhé.

Bước 8: Truy cập PhpMyAdmin

Để truy cập vào PhpMyAdmin , các bạn có thể vào trình duyệt và truy cập theo địa chỉ

http://<IP-Address>:8080

Tiếp đó bạn nhập user root , còn passwd thì bạn lấy ở bước chỉnh sửa file .env (phần MYSQL_ROOT_PASSWORD ) ở bước 3.

CleanShot 2022 05 17 at 15.16.25

 

Như vậy ở trên là toàn bộ các bước cài đặt một website WordPress hoàn chỉnh với OpenLiteSpeed trên Ubuntu 22.04 thông qua Docker Compose. Hy vọng bài viết này sẽ giúp các bạn hiểu rõ hơn về cơ chế hoạt động của việc cài đặt chạy một website hoàn chỉnh thông qua Docker Compose. Chúc các bạn thực hiện thành công.

4.7/5 - (99 bình chọn)
Chat hỗ trợ
Chat ngay