Ngày đăng: July 17, 2025
WordPress là một hệ quản trị nội dung phổ biến (CMS). Nó có thể được sử dụng để thiết lập blog và trang web một cách nhanh chóng và dễ dàng, và hầu hết việc quản lý đều có thể thực hiện qua giao diện web.
Trong hầu hết các trường hợp, WordPress được cài đặt sử dụng ngăn xếp LAMP hoặc LEMP (tức là sử dụng Apache hoặc Nginx làm máy chủ web). Trong hướng dẫn này, chúng ta sẽ thiết lập WordPress với Caddy thay vì vậy. Caddy là một máy chủ web mới nhanh chóng trở nên phổ biến nhờ hàng loạt tính năng đặc biệt, như hỗ trợ HTTP/2 và mã hóa TLS tự động với Let’s Encrypt, một nhà cung cấp chứng chỉ miễn phí phổ biến.
Trong bài hướng dẫn này, bạn sẽ cài đặt và cấu hình WordPress dựa trên Caddy.
Để chạy WordPress, bạn cần một máy chủ web, một cơ sở dữ liệu MySQL và ngôn ngữ lập trình PHP. Bạn đã có máy chủ web Caddy và cơ sở dữ liệu MySQL từ phần yêu cầu trước, vì vậy yêu cầu cuối cùng là cài đặt PHP.
Trước tiên, hãy đảm bảo các gói phần mềm của bạn được cập nhật.
sudo yum update
Cài đặt PHP và các tiện ích mở rộng PHP mà WordPress phụ thuộc, như hỗ trợ MySQL, curl, XML và chuỗi đa byte.
sudo yum install php php-fpm php-mysql php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
Sau khi cài đặt xong, bạn có thể kiểm tra PHP đã được cài đặt đúng bằng cách kiểm tra phiên bản PHP.
php -v
Bạn sẽ thấy đầu ra tương tự như sau, hiển thị số phiên bản PHP.
PHP 5.4.16 (cli) (built: Nov 6 2016 00:29:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
Trước khi tiếp tục, chúng ta cần chỉnh sửa file cấu hình dịch vụ PHP một chút để sử dụng người dùng không đặc quyền caddy
để chạy server. Cấu hình mặc định trên CentOS giả định Apache là máy chủ lựa chọn.
Mở file cấu hình PHP-FPM với vi
hoặc trình soạn thảo văn bản bạn ưa thích. Đây là một hướng dẫn ngắn về vi
nếu bạn chưa quen sử dụng.
sudo vi /etc/php-fpm.d/www.conf
Tìm đoạn xác định tài khoản người dùng và nhóm.
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache
Thay đổi cả hai giá trị thành caddy
như sau:
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = caddy
; RPM: Keep a group allowed to write in log dir.
group = caddy
Lưu và đóng file để thoát. Để Caddy có thể giao tiếp với PHP, hãy khởi động dịch vụ PHP.
sudo systemctl start php-fpm
Tất cả các phụ thuộc của WordPress đã được cài đặt, vì vậy bước tiếp theo là cấu hình cơ sở dữ liệu MySQL để WordPress sử dụng.
WordPress sử dụng cơ sở dữ liệu MySQL để lưu trữ tất cả thông tin của nó. Trong một cài đặt MySQL mặc định, chỉ có tài khoản quản trị root
được tạo ra. Tài khoản này không nên dùng vì đặc quyền không giới hạn có thể gây rủi ro bảo mật. Ở đây, chúng ta sẽ tạo một người dùng MySQL riêng cho WordPress và một cơ sở dữ liệu mà người dùng mới này được phép truy cập.
Đầu tiên, đăng nhập vào tài khoản quản trị MySQL root
.
mysql -u root -p
Bạn sẽ được yêu cầu nhập mật khẩu mà bạn đã đặt cho tài khoản root
trong quá trình cài đặt.
Tạo một cơ sở dữ liệu mới có tên wordpress
sẽ được sử dụng cho trang web WordPress. Bạn có thể dùng tên khác, nhưng hãy nhớ tên này để cấu hình thêm sau.
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Tiếp theo, tạo một người dùng mới được phép truy cập cơ sở dữ liệu này. Ở đây, chúng ta dùng tên người dùng wordpressuser
cho đơn giản, nhưng bạn có thể chọn tên riêng. Hãy thay password
bằng một mật khẩu mạnh và an toàn.
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
Lưu ý: Chính sách mật khẩu mặc định yêu cầu 12 ký tự, bao gồm ít nhất một chữ hoa, một chữ thường, một số và một ký tự đặc biệt. Nếu bạn không tuân theo chính sách này, lệnh trên sẽ không tạo người dùng và hiển thị lỗi.
Xóa bộ nhớ đệm quyền để thông báo cho MySQL về các thay đổi.
FLUSH PRIVILEGES;
Bây giờ bạn có thể thoát MySQL an toàn.
EXIT;
WordPress đã có cơ sở dữ liệu và tài khoản người dùng riêng, vậy tất cả các thành phần hệ thống đã sẵn sàng. Bước tiếp theo là cài đặt WordPress.
Việc cài đặt WordPress bao gồm tải phiên bản mới nhất vào thư mục gốc web và đảm bảo nó có thể truy cập được bởi máy chủ web, sau đó hoàn thành cài đặt qua giao diện đồ họa của WordPress. Ở bước này, chúng ta chỉ tải xuống phiên bản, vì cần cấu hình máy chủ web trước khi truy cập giao diện GUI.
Đầu tiên, chuyển thư mục hiện tại về /var/www
, thư mục gốc chứa các tệp trang web.
cd /var/www
Tải xuống tập tin nén mới nhất của WordPress. Điều quan trọng là sử dụng phiên bản mới nhất vì phần mềm thường được cập nhật các bản vá bảo mật.
sudo curl -O https://wordpress.org/latest.tar.gz
Giải nén tập tin nén bạn vừa tải.
sudo tar zxf latest.tar.gz
Thao tác trên sẽ tự động tạo thư mục mới tên wordpress
. Bây giờ bạn có thể xóa tập tin nén đã tải vì không còn cần thiết.
sudo rm latest.tar.gz
Bước cuối cùng là thay đổi quyền sở hữu các tệp và thư mục WordPress sao cho tất cả tệp có thể ghi bởi Caddy. Điều này cho phép WordPress tự động cập nhật lên các phiên bản mới hơn.
sudo chown -R caddy:caddy wordpress
Lưu ý: Việc chọn quyền phù hợp cho các tệp WordPress phụ thuộc vào sở thích và chính sách quản trị. Không cho phép ghi vào tệp WordPress sẽ tăng cường bảo mật bằng cách ngăn ngừa khai thác lỗ hổng có thể ảnh hưởng đến các tệp lõi WordPress, nhưng đồng thời sẽ vô hiệu hóa việc cập nhật bảo mật tự động và khả năng cài đặt, cập nhật plugin qua giao diện web.
Tiếp theo, bạn cần chỉnh sửa cấu hình máy chủ web để phục vụ trang web của bạn.
Chúng ta sẽ sửa file cấu hình Caddyfile
để thông báo cho Caddy biết vị trí cài đặt WordPress và tên miền mà trang web sẽ được công bố cho khách truy cập.
Mở file cấu hình bằng vi
hoặc trình soạn thảo bạn thích.
sudo vi /etc/caddy/Caddyfile
Sao chép và dán cấu hình sau vào file. Bạn có thể xóa các cấu hình ví dụ từ các hướng dẫn trước.
example.com {
tls [email protected]
root /var/www/wordpress
gzip
fastcgi / 127.0.0.1:9000 php
rewrite {
if {path} not_match ^/wp-admin
to {path} {path}/ /index.php?_url={uri}
}
}
File Caddyfile
này được cấu trúc như sau:
example.com
ở dòng đầu tiên là tên miền mà trang sẽ có. Thay bằng tên miền của bạn.[email protected]
sau lệnh tls
là địa chỉ email mà Caddy sẽ dùng để yêu cầu chứng chỉ từ Let’s Encrypt. Nếu cần phục hồi chứng chỉ, Let’s Encrypt sẽ dùng email này.root
xác định thư mục chứa tệp trang web. Ở ví dụ này là /var/www/wordpress
.gzip
bảo Caddy nén Gzip để làm trang web tải nhanh hơn.fastcgi
cấu hình trình xử lý PHP để hỗ trợ các tệp có phần mở rộng php
.rewrite
kích hoạt URL đẹp (pretty permalinks trong WordPress). Cấu hình này được WordPress tự động cung cấp trong file .htaccess
nếu dùng Apache nhưng phải cấu hình riêng cho Caddy.Sau khi chỉnh sửa xong, lưu lại và thoát.
Khởi động lại Caddy để áp dụng cấu hình mới.
sudo systemctl restart caddy
Khi Caddy khởi động, nó sẽ tự động lấy chứng chỉ SSL từ Let’s Encrypt để phục vụ trang an toàn bằng mã hóa TLS. Bạn giờ có thể truy cập trang WordPress do Caddy lưu trữ bằng cách truy cập tên miền qua trình duyệt. Bạn sẽ thấy biểu tượng ổ khóa màu xanh ở thanh địa chỉ báo trang được truyền qua kết nối an toàn.
Bạn đã cài đặt và cấu hình xong Caddy cùng các phần mềm cần thiết để lưu trữ trang WordPress. Bước cuối là hoàn thành cấu hình WordPress qua giao diện đồ họa.
WordPress có trình cài đặt GUI để hoàn tất cấu hình, bao gồm kết nối cơ sở dữ liệu và thiết lập trang web đầu tiên.
Khi bạn truy cập lần đầu vào WordPress trên trình duyệt, bạn sẽ thấy danh sách ngôn ngữ. Chọn ngôn ngữ bạn muốn dùng. Ở màn hình tiếp theo, WordPress sẽ mô tả thông tin cần cho cơ sở dữ liệu. Nhấn Let’s go!, trang kế sẽ hỏi chi tiết kết nối cơ sở dữ liệu. Điền form như sau:
wordpress
, trừ khi bạn đã tùy chỉnh ở Bước 2.wordpressuser
, trừ khi bạn tùy chỉnh ở Bước 2.wordpressuser
ở Bước 2.Khi nhấn Submit, WordPress sẽ kiểm tra thông tin bạn đã nhập có đúng không. Nếu gặp lỗi, hãy kiểm tra lại chi tiết.
Khi WordPress kết nối thành công tới cơ sở dữ liệu, bạn sẽ thấy thông báo bắt đầu bằng All right, sparky! You’ve made it through this part of the installation. WordPress can now communicate with your database.
Bây giờ bạn có thể nhấn Run the install để bắt đầu cài đặt. Sau một lúc, WordPress sẽ hiện màn hình cuối cùng yêu cầu thông tin trang web như tiêu đề, tên đăng nhập quản trị, mật khẩu và email. Mật khẩu mạnh sẽ tự tạo sẵn nhưng bạn có thể chọn của riêng bạn.
Lưu ý: Thực hành bảo mật tốt không nên dùng tên tài khoản quản trị phổ biến như admin vì nhiều lỗ hổng dựa vào các tên người dùng và mật khẩu phổ biến. Hãy chọn tên người dùng và mật khẩu mạnh để tăng cường bảo mật cho trang.
Sau khi nhấn Install WordPress, bạn sẽ được chuyển đến bảng điều khiển WordPress. Bạn đã hoàn thành cài đặt WordPress và có thể tự do tùy chỉnh trang và viết bài.
Bạn đã có một cài đặt WordPress hoạt động với máy chủ web Caddy. Caddy sẽ tự động lấy chứng chỉ SSL từ Let’s Encrypt, phục vụ trang qua kết nối an toàn, và sử dụng HTTP/2 cùng nén Gzip để làm trang nhanh hơn. Bạn có thể đọc thêm về các tính năng đặc biệt và chỉ thị cấu hình trong Caddyfile
Nếu bạn muốn dùng plugin với WordPress mới, lưu ý một số plugin dựa vào file .htaccess
của máy chủ Apache. Các máy chủ web khác ngoài Apache đã trở nên phổ biến với WordPress nên không nhiều plugin .htaccess
tồn tại. Tuy nhiên, một số plugin này sẽ không hoạt động ngay với Caddy vì Caddy không dùng .htaccess
. Điều này cần lưu ý nếu bạn gặp vấn đề với plugin khi dùng Caddy.
Hầu hết các plugin dựa .htaccess
là plugin bộ nhớ đệm như W3 Total Cache, dùng .htaccess
để tránh xử lý PHP hoàn toàn. Ví dụ khác là Wordfence, một module tường lửa ứng dụng web dùng .htaccess
mặc định nhưng hỗ trợ mô hình cấu hình khác phù hợp.