---
title: "Hướng Dẫn Cài Đặt WordPress với Caddy"
description: "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."
url: https://cloudfly.vn/huong-dan-cai-dat-wordpress-voi-caddy
image: https://media.cloudfly.vn/posts/huong-dan-cai-dat-wordpress-voi-caddy.png
---

# Hướng Dẫn Cài Đặt WordPress với Caddy

![description image](https://media.cloudfly.vn/posts/huong-dan-cai-dat-wordpress-voi-caddy.png)
## Giới thiệu

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.

### Bước 1 — Cài đặt PHP

Để 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.

```command
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.

```command
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.

```command
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.

```command
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.

```command
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.

### Bước 2 — Tạo cơ sở dữ liệu MySQL và người dùng riêng biệt

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`.

```command
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.

```mysql
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.

```mysql
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.

```mysql
FLUSH PRIVILEGES;
```

Bây giờ bạn có thể thoát MySQL an toàn.

```mysql
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.

### Bước 3 — Tải xuống 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.

```command
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.

```command
sudo curl -O https://wordpress.org/latest.tar.gz
```

Giải nén tập tin nén bạn vừa tải.

```command
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.

```command
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.

```command
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.

### Bước 4 — Cấu hình Caddy để phục vụ trang web WordPress

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.

```command
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 admin@example.com
    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.
- `admin@example.com` 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.
- Lệnh `root` xác định thư mục chứa tệp trang web. Ở ví dụ này là `/var/www/wordpress`.
- Lệnh `gzip` bảo Caddy nén Gzip để làm trang web tải nhanh hơn.
- Lệnh `fastcgi` cấu hình trình xử lý PHP để hỗ trợ các tệp có phần mở rộng `php`.
- Lệnh `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.

```command
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.

### Bước 5 — Cấu hình WordPress

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:

- **Tên cơ sở dữ liệu** nên là `wordpress`, trừ khi bạn đã tùy chỉnh ở Bước 2.
- **Tên người dùng** nên là `wordpressuser`, trừ khi bạn tùy chỉnh ở Bước 2.
- **Mật khẩu** là mật khẩu bạn đã đặt cho `wordpressuser` ở Bước 2.
- **Máy chủ cơ sở dữ liệu** và **Tiền tố bảng** giữ nguyên mặc định.

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.

### Kết luận

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.
