Giới thiệu
WordPress là một hệ thống quản lý 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 như tất cả quản trị của nó đều có thể thông qua giao diện web.
Đa số WordPress được cài đặt bằng LAMP hoặc LEMP (nghĩa là sử dụng Apache hoặc Nginx làm máy chủ web). Trong bài viết này, mình sẽ cài đặt WordPress với Caddy web server. Caddy là một máy chủ web mới nhanh chóng trở nên phổ biến với nhiều tính năng độc đáo, như hỗ trợ HTTP / 2 và mã hóa TLS tự động với Let Encrypt – nhà cung cấp chứng chỉ miễn phí phổ biến.
Điều kiện tiên quyết
Để tiếp tục cài đặt WP, bạn sẽ cần:
- Một máy chủ Ubuntu 18.04
- Máy chủ đã cài đặt MySQL trên Ubuntu 18.04
- Caddy server đã cài đặt, xem tại đây Cách cài đặt và cấu hình Caddy web server trên VPS Ubuntu 18.04
Bước 1 – Cài đặt PHP
Để chạy WordPress, bạn cần có máy chủ web, database MySQL và ngôn ngữ kịch bản PHP. Bạn đã có máy chủ web Caddy và database MySQL được cài đặt từ các điều kiện tiên quyết, vì vậy yêu cầu cuối cùng là cài đặt PHP.
Đầu tiên, đảm bảo các gói của bạn được cập nhật.
sudo apt-get update
Sau đó, cài đặt PHP và các phần mở rộng PHP , như hỗ trợ cho MySQL, curl, XML, and multi-byte strings(php7.2-mbstring). PHP 7.3 là bản phát hành ổn định mới nhất của PHP. Nhưng hiện tại trên Ubuntu packages chưa có sẵn nên mình sẽ cài php 7.2.
sudo apt-get install php7.2 php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php7.2-xml php7.2-xmlrpc
Khi quá trình cài đặt kết thúc, bạn có thể xác minh rằng PHP đã được cài đặt đúng bằng cách kiểm tra phiên bản của PHP bằng cách gõ php -v
.
Bạn sẽ thấy tương tự như thế này, hiển thị số phiên bản của PHP.
PHP 7.2.17-0ubuntu0.18.04.1 (cli) (built: Apr 18 2019 14:12:38) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.17-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies
Tất cả các extension cần thiết của WordPress đã được cài đặt, vì vậy, tiếp theo chúng ta sẽ định 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
WordPress sử dụng cơ sở dữ liệu MySQL để lưu trữ tất cả thông tin của nó. Trong cài đặt MySQL mặc định, chỉ có một tài khoản quản trị gốc được tạo.
Tài khoản này không nên được sử dụng vì các đặc quyền không giới hạn của nó đối với máy chủ cơ sở dữ liệu là một rủi ro bảo mật. Tại đây, chúng ta sẽ tạo một người dùng MySQL chuyên dụng cho WordPress để sử dụng và cơ sở dữ liệu mà người dùng mới sẽ được phép truy cập.
Đầu tiên, đăng nhập vào tài khoản quản trị root user MySQL.
mysql -u root -p
Bạn sẽ được nhắc nhập mật khẩu bạn đã đặt cho tài khoản root MySQL.
Tạo một database mới gọi là wordpress sẽ được sử dụng cho trang web WordPress. Bạn có thể sử dụng một tên khác, nhưng hãy chắc chắn rằng bạn nhớ nó để cấu hình bổ sung sau này.
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Tiếp theo, tạo một người dùng mới sẽ được phép truy cập database này. Ở đây, chúng tôi sử dụng wordpressuser tên người dùng để đơn giản, nhưng bạn có thể chọn tên của riêng bạn. Hãy nhớ thay thế mật khẩu bằng mật khẩu mạnh và an toàn.
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES
để thông báo cho máy chủ MySQL về những thay đổi.
FLUSH PRIVILEGES;
Bây giờ bạn có thể thoát khỏi MySQL một cách an toàn.
EXIT;
Hiện tại đã có một cơ sở dữ liệu và tài khoản người dùng chuyên dụng, tất cả các thành phần hệ thống được thiết lập. Bước tiếp theo là cài đặt WordPress.
Bước 3 – Tải xuống WordPress
Trước tiên, bạn di chuyển vào folder /var/www
cd /var/www
tải về bản nén mới nhất của wordpress.
sudo curl -O https://wordpress.org/latest.tar.gz
Giải nén file bạn vừa tải về và folder domain của bạn. Mình có add sẵn 1 domain ở server của mình là ccgr.tk nên mình sẽ giải nén vào đó bằng cách thêm tham số -C
.
tar -C ccgr.tk -zxf latest.tar.gz
nếu bạn muốn xem chi tiết quá trình giải nén thì hãy thêm tham số -v
.
tar -C ccgr.tk -zxvf latest.tar.gz
Nếu bạn muốn giải nén ở folder hiện tại thì làm như sau:
tar zxf latest.tar.gz
Điều này sẽ tự động tạo một thư mục mới gọi là wordpress. Bây giờ bạn có thể xóa file zip đã tải xuống, vì nó không còn cần thiết nữa.
rm latest.tar.gz
Nếu bạn không muốn cài đặt trong folder wordpress thì các bạn hãy move toàn bộ file cùng folder ra cùng cấp vs folder wordpress.
mv -v ccgr.tk/wordpress/* ccgr.tk/
or mv -v wordpress/* ./
Bước cuối cùng là thay đổi quyền của các tệp và thư mục ccgr.tk để tất cả các tệp có thể ghi được bằng Caddy. Điều này sẽ cho phép WordPress được tự động cập nhật lên các phiên bản mới hơn.
sudo chown -R www-data:www-data ccgr.tk
Tiếp theo, bạn cần sửa đổi cấu hình của máy chủ web để phục vụ trang web của bạn.
Bước 4 – Cấu hình Caddy server để phục vụ trang web WordPress
Tại đây, chúng ta sẽ sửa đổi tệp cấu hình Caddyfile để cho Caddy biết vị trí cài đặt WordPress và tên miền nào sẽ được xuất bản cho khách truy cập.
sudo nano /etc/caddy/Caddyfile
cấu hình Caddyfile như sau:
ccgr.tk {
tls [email protected]
root /var/www/ccgr.tk
fastcgi / /var/run/php/php7.2-fpm.sock php
rewrite {
if {path} not_match ^/wp-admin
to {path} {path}/ /index.php?{query}
}
}
Caddyfile
này được cấu trúc như sau:
ccgr.tk trong dòng đầu tiên là tên miền mà theo đó trang web sẽ có sẵn.
[email protected] chỉ thị tls cho Caddy biết địa chỉ e-mail mà nó nên sử dụng để yêu cầu chứng chỉ Encrypt. Nếu bạn cần khôi phục chứng chỉ, Let Encrypt sẽ sử dụng địa chỉ email này trong quá trình khôi phục.
root cho Caddy biết vị trí của các tệp trang web. Trong ví dụ này, đó là /var/www/ccgr.tk.
gzip để nói với Caddy sử dụng nén Gzip để làm cho trang web 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.
Sử dụng rewrite chỉ thị cho phép các pretty URL(được gọi là pretty permalinks trong WordPress). Cấu hình này được WordPress tự động cung cấp trong tệp .htaccess nếu bạn sử dụng Apache, nhưng cần phải được cấu hình riêng cho Caddy.
Sau khi thay đổi tệp cấu hình phù hợp, lưu tệp và thoát.
Khởi động lại Caddy để cài đặt tệp cấu hình mới có hiệu lực.
sudo systemctl restart caddy
Khi Caddy khởi động, nó sẽ tự động lấy chứng chỉ SSL từ Let Encrypt để phục vụ trang web của bạn một cách an toàn bằng mã hóa TLS. Bây giờ bạn có thể truy cập trang web WordPress được lưu trữ Caddy bằng cách điều hướng đến tên miền của bạn bằng trình duyệt web của bạn. Khi bạn làm như vậy, bạn sẽ thấy dấu hiệu khóa màu xanh lục trong thanh địa chỉ có nghĩa là trang web đang được hiển thị qua kết nối an toàn.
Bước 5 – Cấu hình WordPress
Đến bước cài đặt WP này thì chắc không cần phải nói nhiều rồi. Truy cập trang web của bạn và tiến hành cài đặt theo các bước chỉ dẫn:
- Tên database wordpress, trừ khi bạn tùy chỉnh nó trong Bước 2.
- Tên người dùng phải là wordpressuser , trừ khi bạn tùy chỉnh nó trong Bước 2.
- Mật khẩu phải là mật khẩu bạn đặt cho wordpressuser trong Bước 2.
- Database máy chủ và tiền tố bảng nên được để lại các giá trị mặc định của chúng.
Như vậy là xong xuôi rồi, đây là trang web mà mình đã cài đặt với Caddy server ccgr.tk
Lưu ý: Caddy server không hỗ trợ tệp .htaccess như trên máy chủ web Apache. Vì thế bạn cần lưu ý nếu bạn gặp vấn đề với các plugin WordPress khi sử dụng Caddy.
ah tiện cho mình hỏi cách làm khung trả lời cmt như của bạn đc ko?
tức là giống như 1 dạng đăng ký vậy
Cái này mình sử dụng comment form default của WordPress thôi bạn, bạn có thể search keyword “custom comment form wordpress” để tìm hiểu thêm
So với nginx thì caddy có gì trội hơn ko?
có chịu tải tốt hơn giống litespeed ko?
thanks
Theo như mình biết thì Caddy Web Server đang còn rất mới, chưa nhiều người dùng biết tới. Và vẫn trong giai đoạn cập nhật liên tục, hiện tại thì chưa thể sánh bằng Nginx được, nhưng mà tương lai biết đâu bất ngờ 😀
Vài điểm nổi bật mà mình thấy trong Caddy như sau:
Với lại Web server này thú vị cho ai thích trải nghiệm thôi, còn về hiệu suất thì vẫn nên sử dụng apache hoặc nginx
mặc định hỗ trợ HTTP / 2.0
đc cái này ngon nhất
thanks for good reply
chúc blog phát triển tốt
Cảm ơn bạn đã ghé thăm blog 🍻