WordPress là một trong những hệ thống quản lý nội dung (CMS) phổ biến hiện nay, thường được sử dụng để xây dựng các trang blog hay website nhanh chóng và đơn giản. Bài viết này sẽ hướng dẫn cài đặt WordPress với Caddy trên CentOS 7 – một web server với nhiều tính năng mở rộng, hỗ trợ HTTP/2 và mã hóa TLS.
Điều kiện cài đặt WordPress với Caddy trên CentOS 7
Thông thường WordPress sẽ được cài đặt đi kèm với LEMP hoặc LAMP stack (sử dụng web server là Nginx hoặc Apache). Hiện nay đã có Caddy, một web server mới có nhiều tính năng độc đáo như hỗ trợ HTTP/2, mã hóa TLS tự động với Let’s Encrypt,…
Trước khi thực hiện theo hướng dẫn thì bạn cần có sẵn một server CentOS 7 và một user non-root phân quyền sudo. Bên cạnh đó người dùng cũng cần cài đặt MySQL và Caddy với một tên miền trỏ về server này.
![Hướng dẫn cài đặt WordPress với Caddy trên CentOS 7 2 Điều kiện cài đặt WordPress với Caddy trên CentOS 7](https://static-xf1.vietnix.vn/wp-content/uploads/2023/11/dieu-kien-cai-dat-wordpress-voi-caddy-tren-centos-7.png)
Sau khi đảm bảo các yêu cầu trên, hãy làm theo các bước dưới đây để cài đặt WordPress trên CentOS 7 bằng web server Candy.
Vietnix hiện đang là nhà cung cấp dịch vụ hosting uy tín, chất lượng được nhiều khách hàng tin dùng trên thị trường Việt Nam. Các gói hosting đều đảm bảo yếu tố tốc độ cao, ổn định và bảo mật để giúp khách hàng có thể an tâm triển khai phát triển kinh doanh trên internet, gồm: Hosting Giá Rẻ, Hosting Cao Cấp, Business Hosting, SEO Hosting và WordPress Hosting.
Đặc biệt khi đăng ký hosting tại Vietnix bạn sẽ được nhận miễn phí bộ theme và plugin bản quyền trị giá tới 26.000.000 VND giúp tối ưu quá trình tạo và phát triển website.
Nhanh tay đăng ký hosting Vietnix ngay tại đây!
Bước 1 – Cài đặt PHP
Để chạy được WordPress thì bạn cần có một web server, một database MySQL và một ngôn ngữ viết script PHP. Bạn đã có sẵn web server là Caddy và database MySQL được cài đặt trước khi thực hiện hướng dẫn, do đó chỉ cần cài thêm PHP theo các bước sau.
Đầu tiên là cập nhật các package:
sudo yum update
Sau đó cài đặt PHP và các tiện ích mở rộng đi kèm cho WordPress như curl
, XML và các chuỗi multi-byte:
sudo yum install php php-fpm php-mysql php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
Xác thực xem PHP đã được cài đặt chưa bằng lệnh sau:
php -v
Output sẽ hiển thị phiên bản của PHP:
PHP version output 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
Lưu ý: Tại thời điểm bài viết PHP được sử dụng là v5.4, để tránh lỗi không tương thích cho các project liên quan hoặc dự án khác sau này, khuyến khích người dùng nên sử dụng PHP tối thiểu v7.4 trở lên.
Trước khi tiếp tục, bạn cần thay đổi một chút trong file config của PHP để sử dụng user caddy
chạy server (user này không có đặc quyền nào). Cấu hình mặc định trên CentOS giả sử rằng hệ thống đang chạy server Apache,
Mở file config PHP-FPM bằng một text editor bất kỳ (ví dụ như vi
):
sudo vi /etc/php-fpm.d/www.conf
Tìm các dòng chứa thông tin về tài khoản user và group:
; 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
Sau đó đổ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 rồi đóng lại file. Sau đó Caddy có thể giao tiếp được với PHP. Bây giờ bạn có thể khởi động dịch vụ PHP bằng lệnh:
sudo systemctl start php-fpm
Bước 2 – Tạo database MySQL và user riêng
Ở bước tiếp theo, ta sẽ cấu hình một database MySQL để WordPress lưu trữ thông tin. Theo cài đặt mặc định của MySQL thì chỉ có một tài khoản quản trị root
được tạo sẵn. Tuy nhiên, bạn không nên sử dụng tài khoản này vì có thể dẫn đến các lỗ hổng bảo mật với các đặc quyền không giới hạn mà tài khoản này được phép sử dụng. Do đó ta sẽ tạo một user MySQL riêng để sử dụng và một database mới mà user này có quyền truy cập.
Trước tiên, đăng nhập vào tài khoản root
của MySQL:
mysql -u root -p
Sau đó nhập mật khẩu mà bạn đã thiết lập trong quá trình cài đặt MySQL. Bây giờ chạy lệnh dưới đây để tạo một database mới có tên wordpress
để dùng cho website WordPress mới:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Tiếp theo, tạo một user mới có tên wordpressuser
để truy cập vào database này, thay phần password
trong lệnh thành một mật khẩu khác bạn muốn sử dụng:
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
Lưu ý rằng chính sách mật khẩu mặc định yêu cầu ít nhất 12 ký tự, trong đó có ít nhất 1 ký tự in hoa, 1 ký tự thường, 1 số và 1 ký tự đặc biệt. Nếu mật khẩu chưa đạt đủ tiêu chí trên thì sẽ không được tạo ra và người dùng sẽ nhận được thông báo lỗi.
Sau đó duyệt hết các đặc quyền để áp dụng các thay đổi cho server MySQL:
FLUSH PRIVILEGES;
Cuối cùng là thoát khỏi MySQL sau khi hoàn tất:
EXIT;
Bước 3 – Download WordPress
Bây giờ ta có thể download và cài đặt WordPress sau khi có đủ các thành phần cần thiết. Quá trình cài đặt WordPress sẽ gồm các bước sau: download một phiên bản về root directory rồi bật quyền truy cập cho web server, sau đó hoàn tất quá trình cài đặt thông qua giao diện đồ họa của WordPress. Ở bước này bạn sẽ download một phiên bản của WordPress về root directory trước.
Đầu tiên, chuyển sang thư mục root /var/www
:
cd /var/www
Sau đó download bản nén WordPress mới nhất:
sudo curl -O https://wordpress.org/latest.tar.gz
Giải nén file vừa download:
sudo tar zxf latest.tar.gz
Sau đó ta sẽ có một thư mục wordpress
mới, bây giờ bạn có thể xóa file nén vừa download:
sudo rm latest.tar.gz
Cuối cùng là đổi quyền truy cập của các file và thư mục WordPress sao cho có thể được ghi bởi Caddy, cho phép tự động cập nhật WordPress lên các phiên bản mới nhất:
sudo chown -R caddy:caddy wordpress
Lưu ý: Phân quyền hợp lý cho các file của WordPress là một điều luôn được ưu tiên. Chẳng hạn việc vô hiệu quyền truy cập hay quyền ghi xóa lên file WordPress để tăng tính bảo mật, tránh các lỗi làm tổn hại core file. Tuy nhiên điều đó cũng dẫn đến vô hiệu khả năng tự cập nhật, tự cài đặt cũng như tương tác các plugin thông qua giao diên web của WordPress.
Bước 4 – Cấu hình Caddy cung cấp nội dung cho website WordPress
Bây giờ bạn sẽ thay đổi file cấu hình Caddyfile
để cho Caddy biết vị trí cài đặt WordPress và tên miền muốn hiển thị cho khách truy cập.
Mở file config bằng vi
text editor:
sudo vi /etc/caddy/Caddyfile
Sau đó sao chép và dán đoạn sau vào file. Bạn có thể bỏ các cấu hình mẫu từ những hướng dẫn trước nếu muốn:
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
có cấu trúc như sau:
example.com
ở dòng đầu là tên miền được hiển thị cho trang. Bạn sẽ thay giá trị này thành tên miền tương ứng của mình.admin@example.com
ở sau directivetls
cho biết địa chỉ e-mail mà Caddy nên sử dụng để yêu cầu chứng chỉ Let’s Encrypt. Đây cũng sẽ là e-mail mà Let’s Encrypt dùng để khôi phục chứng chỉ nếu cần.- Directive
root
cho Caddy biết vị trí các file của website, trong ví dụ này là/var/www/wordpress
. - Directive
gzip
yêu cầu Caddy sử dụng phương thức nén Gzip để tăng tốc độ website. - Directive
fastcgi
cấu hình để bộ xử lý PHP có thể hỗ trợ các file có đuôi làphp
. - Directive
rewrite
cho phép hiển thị các URL ở dạng dễ đọc hơn. Cấu hình này được cung cấp tự động bởi WordPress trong file.htaccess
nếu bạn đang sử dụng Apache, tuy nhiên ta vẫn cần cấu hình riêng cho Caddy.
Sau khi hoàn tất, bạn có thể lưu rồi đóng file lại. Cuối cùng là restart Caddy để áp dụng các thay đổi:
sudo systemctl restart caddy
Sau khi Caddy khởi động, nó sẽ tự động nhận một chứng chỉ SSL từ Let’s Encrypt để cung cấp nội dung cho website bằng mã hóa TLS. Bây giờ bạn có thể truy cập website được host với Caddy bằng cách điều hướng đến miền trên trình duyệt web. Khi đó sẽ có một icon ổ khóa màu xanh ở trên thanh địa chỉ, cho biết rằng website đang được hiển thị qua một kết nối an toàn.
Bước 5 – Cấu hình WordPress
WordPress cung cấp sẵn giao thức cài đặt dựa trên GUI, cho phép hoàn thiện việc cài đặt, kết nối đến database và thiết lập website bước đầu nhanh chóng.
Khi truy cập vào trang WordPress lần đầu, bạn sẽ được chọn một ngôn ngữ để sử dụng, sau đó màn hình sẽ hiển thị các thông tin cần thiết về database. Click vào Let’s go! và bạn sẽ được chuyển đến trang yêu cầu các thông tin kết nối database. Trong đó hãy điền như sau:
- Phần Database Name hãy chọn
wordpress
như trong Bước 2. - Phần Username hãy chọn
wordpressuser
như ở Bước 2. - Phần Password hãy điền mật khẩu đã thiết lập cho
wordpressuser
trong Bước 2. - Để nguyên giá trị mặc định cho hai phần Database Host và Table Prefix.
Sau đó click Submit và WordPress sẽ kiểm tra xem các thông tin đã chính xác chưa. Nếu gặp lỗi thì hãy kiểm tra lại các thông tin database đã nhập vừa rồi.
Sau khi WordPress kết nối đến database thành công, bạn sẽ nhận được thông báo sau:
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ể click Run the install để bắt đầu quá trình cài đặt. Đợi một lúc và WordPress sẽ hiển thị màn hình yêu cầu nhập thông tin website như tiêu đề, username, password và địa chỉ email của tài khoản quản trị.
Hệ thống sẽ tự khởi tạo một chuỗi mật khẩu mạnh cho tài khoản, nhưng bạn vẫn có thể đặt mặt khẩu khác nếu muốn. Lưu ý rằng không nên chọn username đơn giản như admin
và cần sử dụng mật khẩu đủ mạnh để đảm bảo an toàn cho hệ thống.
Cuối cùng là click vào Install WordPress và bạn sẽ truy cập được vào dashboard của WordPress. Bây giờ bạn có thể bắt đầu tùy chỉnh và đăng các nội dung lên website của mình.
Qua 11 năm hoạt động, Vietnix hiện đang là một trong những nhà cung cấp dịch vụ Hosting/VPS tốc độ cao chất lượng, uy tín hàng đầu Việt Nam. Với sự đầu tư liên tục về hạ tầng và nhân sự để có thể nhanh chóng đáp ứng được các tiêu chuẩn khắt khe của thị trường hosting, VPS,… Vietnix hiện đã được hơn 50.000+ khách hàng trong lẫn ngoài nước tin tưởng trong đó có thể kể đến như: iVIVU.com, GTV, Vietnamwork, UBGroup, KINGFOOD,…
Năm 2022 vừa qua, Vietnix vinh dự nhận được giải thưởng “Thương hiệu Việt Nam xuất sắc 2022”, hạng mục “Sản phẩm dịch vụ xuất sắc”.
Nhanh tay liên hệ Vietnix để được tư vấn chi tiết:
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
Lời kết
Bài viết này đã hướng dẫn chi tiết các bước cài đặt WordPress bằng web server Caddy trên CentOS 7. Caddy sẽ tự động lấy chứng chỉ SSL từ Let’s Encrypt và cung cấp nội dung cho website qua kết nối an toàn, đồng thời tối ưu hiệu năng website bằng HTTP/2 và nén Gzip. Nếu có bất kỳ thắc mắc nào khác, hãy để lại ở phần bình luận bên dưới để được Vietnix hỗ trợ nhanh nhất nhé.