Note: This article is a version adapted to MariaDB of my post Run MySQL & phpMyAdmin locally in 3 steps using Docker Installing a relational database with a web based management tool is a very common requirement for a wide range of software projects. Not too many years ago, developers needed to download and install these components manually into our local machines in order to be able to work. However, thanks to container based technologies like docker, we can get our environment up and running in 3 simple steps. Có nhiều cách để cài đặt WordPress lên VPS. Dưới đây là những cách cài đặt WordPress mình đã sử dụng trong những năm qua: - Cài đặt LAMP Stack (Linux, Apache, MySQL, PHP) lên VPS. WordPress sẽ chạy trên nền Apache web server. Xem hướng dẫn trên DigitalOcean.
- Cài đặt script quản lý Centminmod (CentOS), EasyEngine (Ubuntu / Debian), Webinoly (Ubuntu / Debian), Valet+ (MacOS). WordPress sẽ chạy trên nền Nginx web server.
- Cài đặt Cyberpanel. WordPress sẽ chạy trên nền OpenLiteSpeed web server. Đây là lựa chọn số một của mình ở thời điểm hiện tại để cài đặt WordPress. Đây là lựa chọn số một của mình ở thời điểm hiện tại để cài đặt WordPress.
Ưu điểm của các cách này là sự ổn định (nếu cài đặt và cấu hình đúng), và tận dụng được tối đa sức mạnh của VPS. Tuy nhiên, có ba nhược điểm khi cài đặt web server trực tiếp lên hệ điều hành kiểu này: - Cài đặt và cấu hình tốn thời gian, nhiều script quản lý cần phải compile từ mã nguồn có thể mất hơn 30 phút mới cài xong.
- Không thể chuyển đổi linh hoạt qua lại giữa Apache / Nginx / OpenLiteSpeed. Bắt buộc phải cài đặt lại hệ điều hành và cài lại từ đầu.
- Việc sao chép thông số cấu hình qua lại giữa 2 server rắc rối, mất thời gian.
Những nhược điểm này thực sự phiền toái mỗi lần mình cần phải chuyển website qua server mới ngay lập tức vì những lý do bất khả kháng: nhà cung cấp bảo trì hệ thống, VPS bị sập, cá mập cắn cáp,… Để giải quyết vấn đề này, mình đang nghiên cứu chuyển qua cài đặt WordPress sử dụng Docker Compose, tận dụng ưu thế về sự linh hoạt và độc lập của Docker. Đó là lý do của bài viết hôm nay: hướng dẫn cách cài đặt WordPress + MariaDB + PhpMyadmin chạy trên nền OpenLiteSpeed sử dụng Docker Compose. - I. Yêu cầu chuẩn bị
- II. Cài đặt OpenLiteSpeed
- 1. Tải ols-docker-env
- 2. Cấu trúc thư mục
- 3. Kích hoạt Container
- III. Cấu hình OpenLiteSpeed
- IV. Thêm tên miền và virtual hosts
- V. Cài đặt chứng chỉ SSL miễn phí
- VI. Cài đặt WordPress
- VII. Truy cập PhpMyAdmin
- VIII. Lời kết
I. Yêu cầu chuẩn bịII. Cài đặt OpenLiteSpeed - 1. Tải ols-docker-env
- 2. Cấu trúc thư mục
3. Kích hoạt Container 1. Tải ols-docker-env2. Cấu trúc thư mục cd /home
git clone https://github.com/litespeedtech/ols-docker-env.git
3. Kích hoạt Container cd ols-docker-env
2. Cấu trúc thư mục3. Kích hoạt Container ├── 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
- III. Cấu hình OpenLiteSpeed
- IV. Thêm tên miền và virtual hosts
- V. Cài đặt chứng chỉ SSL miễn phí
- VI. Cài đặt WordPress
- VII. Truy cập PhpMyAdmin
- VIII. Lời kết
3. Kích hoạt ContainerIII. Cấu hình OpenLiteSpeed nano .env
IV. Thêm tên miền và virtual hosts 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. Cài đặt chứng chỉ SSL miễn phí VI. Cài đặt WordPress TimeZone=Asia/Ho_Chi_Minh
OLS_VERSION=1.7.15
PHP_VERSION=lsphp74
MYSQL_DATABASE=thuanbui
MYSQL_ROOT_PASSWORD=depchaivodich
MYSQL_USER=thuanbui
MYSQL_PASSWORD=depchaivodich
DOMAIN=localhost
VII. Truy cập PhpMyAdmin docker-compose up
VIII. Lời kết docker-compose up -d
Để thực hiện theo thao tác trong bài, bạn cần chuẩn bị hệ thống như sau: VPS cài đặt hệ điều hành Linux: CentOS / Debian / Ubuntu mới tinh, chưa cài thêm bất kỳ web server nào. Bạn cũng có thể cài đặt trên Windows / MacOS / Raspberry Pi, miễn là hệ điều hành hỗ trợ Docker. III. Cấu hình OpenLiteSpeedIV. Thêm tên miền và virtual hosts https://<IP-Address>:7080
V. Cài đặt chứng chỉ SSL miễn phí bash bin/webadmin.sh matkhaumoi
VI. Cài đặt WordPress Cài đặt OWASP ModSecurity để tăng bảo mật cho OpenLiteSpeedOWASP ModSecurity để tăng bảo mật cho OpenLiteSpeed cd ols-docker-env 0Việc cài đặt mất khoảng 1 phút là xong. Trên màn hình sẽ hiện ra các ghi chú như sau trong khi cài đặt. cd ols-docker-env 1IV. Thêm tên miền và virtual hostsQuay lại Terminal, sử dụng lệnh sau để thêm tên miền nano .env 4cd ols-docker-env 2Sau khi tạo xong, bạn có thể truy cập vào thư mục sites, sẽ thấy có thêm thư mục nano .env 4 do hệ thống tạo ra.Nếu lỡ tay tạo nhầm, bạn có thể xoá bằng lệnh cd ols-docker-env 3V. Cài đặt chứng chỉ SSL miễn phí
Trước khi cài đặt chứng chỉ SSL, bạn cần chỉnh sửa A Record cho tên miền trỏ về địa chỉ IP của VPS. Cài đặt ACME – công cụ tạo chứng chỉ SSL miễn phí từ Let’s Encrypt cd ols-docker-env 4Chờ khoảng 1 phút cho hệ thống xử lý, khi nào thấy xuất hiện dòng nano .env 6 nghĩa là đã cài đặt xong.cd ols-docker-env 5Tạo chứng chỉ SSL cho tên miền nano .env 4cd ols-docker-env 6Mặc định, ACME sẽ dùng hệ thống cấp chứng chỉ của ZeroSSL thay cho Let’s Encrypt. Nhưng lâu lâu bên ZeroSSL gặp vấn đề, chờ hoài chờ hoài mà không cấp xong chứng chỉ SSL, bị lỗi như dưới đây cd ols-docker-env 7Nếu gặp tình trạng tương tự, bạn cần sửa lại lại file nano .env 8 cho nó sử dụng hệ thống cấp chứng chỉ của Let’s Encryptcd ols-docker-env 8Tìm đến dòng nano .env 9 và sửa lại thành 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 0. Sau đó lưu lại và chạy lại lệnh cấp SSLcd ols-docker-env 6Chờ vài phút là xong. ├── 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
0VI. Cài đặt WordPressTrước khi cài đặt WordPress, chúng ta cần tạo database cho tên miền ├── 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
1Kết quả nhận được sẽ là thông tin Database, Username và Password được tự động tạo ra như dưới đây ├── 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
2Nế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 ├── 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
3Cài đặt WordPress ├── 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
4Trên màn hình sẽ hiển thị vài dòng như sau, khoảng 1-2 phút là cài xong ├── 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
5Mở trình duyệt truy cập vào website để hoàn thành bước cài đặt WordPres cuối cùng 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 1VII. Truy cập PhpMyAdminBạn có thể truy cập PhpMyAdmin bằng 1 trong 2 cách ├── 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
6├── 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
7Sử dụng tài khoản và mật khẩu sau để đăng nhập VIII. Lời kếtToàn bộ thao tác mình liệt kê ở trên nhìn có vẻ dài dòng như thật ra chỉ mất khoảng 5′ là xong. Việc thiết lập 1 trang WordPress mới chưa bao giờ đơn giản hơn thế. Ưu điểm lớn nhất của cách cài đặt WordPress bằng Docker là mình có thể chuyển toàn bộ thiết lập server và website qua một VPS mới cực kỳ nhanh chóng. Thao tác đơn giản chỉ trong 3 bước: - Tạm ngưng Container bằng lệnh
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 3 - Copy bộ thư mục hiện hành qua VPS mới bằng lệnh
├── 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
8 - Đổi A Record của tên miền qua địa chỉ IP của VPS mới.
- Kích hoạt lại Container bên VPS mới bằng lệnh
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 5
Mọi thứ hoạt động ngon lành lại ngay chỉ trong vòng 5 phút, không phải mất thời gian cài đặt đủ thứ như cách thông thường đã nêu ở đầu bài nữa. Trong bài viết sau, mình sẽ demo hướng dẫn cách đóng gói website WordPress đang chạy trực tiếp trên hệ điều hành để chuyển qua chạy trên nền Docker. Chúc bạn thực hiện thành công! Nếu bài viết của mình mang đến thông tin, kiến thức hữu ích cho bạn, đừng ngại mời mình ly bia để có thêm động lực chia sẻ nhiều hơn nữa. Cám ơn bạn!
Bài viết liên quan |