Cài đặt WordPress với Caddy web server trên Ubuntu 18.04

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:

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.

Oh My Zsh: Nâng cao trải nghiệm terminal với giao diện đẹp và các plugin tăng hiệu suất! Git cherry-pick là gì? Cách sử dụng và ví dụ Git Rebase: Gộp nhiều commit thành một để tối ưu hóa lịch sử commit 11 tính năng JavaScript mới tuyệt vời trong ES13 (ES2022) CSS diệu kỳ: Các thuộc tính CSS mà bạn có thể chưa biết Auto deploy projects với GitHub Actions – sử dụng ssh-action WordPress Gutenberg Block Server Side Render Add, Upload image trong Gutenberg Block Development Tạo Block Controls – Block Toolbar và Settings Sidebar trong WordPress Gutenberg Làm quen với các components thường dùng khi tạo Gutenberg Block

6 thoughts on “Cài đặt WordPress với Caddy web server trên Ubuntu 18.04

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

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

    1. 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:

      • Cài đặt, cấu hình nhanh và dễ.
      • Nó đi kèm với hỗ trợ HTTP / 2.0 và phục vụ qua HTTPS theo mặc định (chuyển hướng HTTP sang HTTPS cũng được xử lý tự động, trong khi Apache2 hoặc nginx bạn phải làm theo cách thủ công).
      • Web server này được viết bằng Go, một ngôn ngữ có đảm bảo an toàn bộ nhớ cao hơn các máy chủ khác
      • Và có sẵn cho cả Windows, Mac, Linux và BSD

      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

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.