Caddy web server cũng là máy chủ web như Nginx hay Apache, LiteSpeed. Tuy nhiên nó có đặc điểm là dễ cài đặt hơn hẳn, trong đó có việc cấp phát https (SSL) diễn ra rất trơn tru, file cấu hình có cấu trúc đơn giản, dễ hiểu. Hôm nay chúng ta sẽ thực hành cài Caddy, rồi cài WordPress trên đó. Nếu ai từng có kinh nghiệm khổ sở khi cài Nginx thế nào, thì sẽ cảm thấy sung sướng ra sao với Caddy!
Caddy có thể cài trên rất nhiều OS khác nhau, bài demo này chúng ta cài trên Ubuntu 24.04 LTS.
Yêu cầu kiến thức nền: Có hiểu biết cơ bản về cách dùng terminal console (giao diện dòng lệnh) với VPS, có thể là các terminal sẵn có luôn qua giao diện web của VPS (noVNC), hoặc các terminal console được kết nối thông qua phần mềm như PuTTY.
A. Cài Caddy
1. Cập nhật hệ thống
sudo apt update && sudo apt upgrade -y
2. Cài đặt các gói phụ thuộc
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
3. Thêm Repository
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
4. Cài Caddy
Lặp lại lệnh sudo apt update vì có thêm các gói mới từ Repository của Caddy.
sudo apt update && sudo apt install caddy -y
5. Mở cổng 80 và 443
Các cổng này phục vụ cho mục đích truy cập web.
sudo ufw allow 80 && sudo ufw allow 443 && sudo ufw reload
B. Cài PHP & Database (MariaDB)
1. Cài PHP & MariaDB
sudo apt install -y mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-imagick php-intl
2. Đăng nhập vào database
sudo mariadb
Bạn sẽ thấy dấu nhắc MariaDB [(none)] >, giờ hãy nhập lệnh tiếp theo.
3. Tạo database
CREATE DATABASE wordpress_caddy DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'wpuser_caddy'@'localhost' IDENTIFIED BY 'pass_db_caddy';
GRANT ALL PRIVILEGES ON wordpress_caddy.* TO 'wpuser_caddy'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Đến bước cuối EXIT; thì nhấn Enter để thoát khỏi database.
Giải thích:
wordpress_caddy: tên cơ sở dữ liệu, đặt tên tùy ý.wpuser_caddy: tên người dùng cho cơ sở dữ liệu, đặt tên tùy ý.pass_db_caddy: mật khẩu cho người dùng, tùy ý.GRANT ALL PRIVILEGES: cấp tất cả các quyền cho người dùngwpuser_caddythao tác với bảngwordpress_caddy
Lưu ý: Trong môi trường thử nghiệm có thể đặt tên như mẫu (ý là bạn copy mà không cần sửa), nhưng trong môi trường chính thức, nên sửa lại để nó khó đoán hơn… Mặc dù đặt tên tùy ý nhưng tránh có dấu & có khoảng trắng.
C. Tải và cài đặt WordPress
1. Tạo thư mục /var/www
sudo mkdir -p /var/www
2. Tải và giải nén WordPress
Di chuyển vào thư mục /var/www
cd /var/www
Tải về phiên bản mới nhất của WordPress, giải nén nó và xóa file nén sau khi đã giải nén xong:
sudo curl -LO https://wordpress.org/latest.tar.gz && sudo tar xzvf latest.tar.gz && sudo rm latest.tar.gz
3. Phân quyền
sudo chown -R www-data:www-data /var/www/wordpress && sudo chmod -R 755 /var/www/wordpress
D. Cấu hình Caddy
1. Xác định phiên bản của PHP
ls /run/php/php*-fpm.sock
Nó sẽ cho ra một đường dẫn quan trọng, ví dụ của tôi là: /run/php/php8.3-fpm.sock, bạn cần để ý đến đường dẫn này, đặc biệt là phiên bản php (php8.x) để điều chỉnh trong file trong bước sau này.
2. Trỏ domain về IP của DNS
Trỏ 2 bản ghi A cho cả dạng không-www, và có-www về IP của VPS. Cách tiện là thông qua Cloudflare.
3. Sửa file Caddyfile
sudo nano /etc/caddy/Caddyfile
Xóa hết nội dung cũ, rồi nhập nội dung dưới đây vào. Chú ý thay example.com thành tên miền của bạn & thay phiên bản PHP tương ứng vào:
# chuyen huong co-www ve khong-www
# thay ten mien cua ban vao
www.example.com {
redir https://example.com{uri} permanent
}
# 1. Thay ten mien cua ban vao day
example.com {
# duong dan vao trang web
root * /var/www/wordpress
# nen zstd hoac gzip de tai trang nhanh hon
encode zstd gzip
# thay php8.x bang phien ban thuc te cua ban
php_fastcgi unix//run/php/php8.3-fpm.sock
# phuc vu file tinh
file_server
# tang gioi han upload
request_body {
max_size 50MB
}
# chan truy cap trang nhay cam
@hidden {
path /wp-content/uploads/*.php
path /wp-includes/*.php
path /wp-config.php
}
respond @hidden 404
}
Nhấn Ctrl + O rồi Enter để lưu, nhấn Ctrl + X để thoát.
4. Khởi động lại Caddy để áp dụng mọi thay đổi
sudo systemctl reload caddy
E. Thiết lập WordPress trên domain của bạn
Truy cập https://ten-mien-cua-ban.com sau đó nó sẽ hiện ra phần cài đặt WordPress.
1. Chọn ngôn ngữ cho giao diện, có thể để tiếng Anh hoặc tiếng Việt.
2. Các thông tin cần có để cài đặt database
Chính là các thông tin mà ta đặt khi tạo database cho WordPress.
3. Nhập chính xác thông tin vào các trường tương ứng
Nhấn Submit rồi chạy cài đặt (Run the installation) là nó sẽ chuyển qua phần nhập thông tin cho website:
–
Thành công:




