Làm thế nào để cài đặt Wordpress trên CentOS 7 với Caddy

2 năm trước

Giới thiệu

Wordpress  là một hệ thống quản lý nội dung phổ biến (CMS). Được sử dụng để tạo blogs và website một cách nhanh chóng và dễ dàng, để hầu hết hệ thống quản trị có thể làm việc thông qua một giao diện web .

 WordPress được cài đặt thường sử dụng stack LAMP hoặc LEMP. Nhưng trong phần này chúng ta sẽ cài đặt  WordPress sử dụng Caddy thay thế. Caddy là một web server mới ra đời nhưng đã nhanh chóng trở lên phổ biến vì những đặc điểm độc đáo và phạm vi sử dụng khá rộng của nó, cũng giống như HTTP/2 hay công cụ mã hoáTLS tự động với Let's Encrypt , thì đây là một công cụ miễn phí có bản quyền khá thông dụng.

Trong phần này chúng ta sẽ cài đặt và định cấu hình Wordpress với sự hỗ trợ của server Caddy.

 

Yêu cầu căn bản

Để cài đặt bạn cần có:

  • Một máy chủ CentOS 7 sử dụng đăng nhập là người dùng giả định.
  • MySQL .
  • Caddy.

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

 Để Wordpress hoạt động thì cần một web server , một hệ cơ sở dữ liệu MySQL  và ngôn ngữ mô tả PHP . Nếu như bạn đã cài đặt như yêu cầu bên trên rồi thì giờ bạn chỉ cần cài thêm gôn ngữ mô tả PHP nữa thôi.

Đầu tiên phải đảm bảo gói cài đặt được cập nhật.

sudo yum update 

Cài đặt PHP và PHP extensions mà WordPress cần để hỗ trợ cho  MySQL, curl, XML, và chuỗi multi-byte .

sudo yum install php php-fpm php-mysql php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc 

Khi cài đặt xong bạn có thể xác minh cài đặt bằng cách kiểm tra phiên bản PHP.

php -v 

Bạn sẽ thấy đầu ra sẽ cung cấp số phiên bản của PHP như thế này.

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 

Trước khi chuyển đến bước tiếp theo chúng ta cần điều chỉnh một chút file cấu hình cho chương trình PHP để nó có thể chạy mượt mà trên server khi mà chúng ta sử dụng Caddy không có bản quyền. Cấu hình mặc định trên CentOS sẽ chọn sever Apache mặc định.

 Mở file PHP-FPM với vi hoặc bất kỳ công cụ chỉnh sửa nào bạn thích.

sudo vi /etc/php-fpm.d/www.conf 

Tìm đoạn chỉ định tới người dùng hoặc nhóm người dùng.

/etc/php-fpm.d/www.conf
; 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 giá trị caddy như bên dưới:

/etc/php-fpm.d/www.conf
; 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. Giờ thì khởi động PHP:

sudo systemctl start php-fpm 

Khi tất cả các công cụ phục vụ cho Wordpress được cài đặt xong thì chúng ta sẽ chuyển sang định cấu hình hệ cơ sở dữ liệu MySQL cho Wordpress để sử dụng.

 

Bước 2 - Tạo một hệ cơ sở dữ liệu cho MySQL và người dùng chuyên dụng.

Wordpress sử dụng cơ sở dữ liệu MySQL để lưu trữ thông tin. Trong chương trình cài đặt MySQL mặc định thì chỉ tạo ra được duy nhất tài khoản quản trị gốc . Tài khoản này không nên được sử dụng vì nó có quyền truy cập không giới hạn tới máy chủ cơ sở dữ liệu nên sẽ gây ra rủi ro về bảo mật. Do đó, chúng ta sẽ tạo ra một tài khoản MySQL chuyên dụng cho Wordpress để sử dụng và một hệ cơ sở dữ liệu mà người dùng mới được phép truy cập.

Đầu tiên đăng nhập MySQL với tài khoản quản trị gốc.

mysql -u root -p 

Khi bạn cài đặt thì hệ thống sẽ nhắc nhở bạn cài mật khẩu cho tài khoản MySQL gốc.

Tạo một cơ sở dữ liệu mới có tên là  wordpress sẽ được sử dụng cho website Wordpress . bạn có thể sử dụng tên khác nhưng đảm bảo bạn phải nhớ để sử  dụng cho việc định cấu hình sau đó.

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 

 Tiếp đến là tạo một người dùng mới cho phép truy cập hệ cơ sở dữ liệu. Do đó chúng ta sẽ sử dụng tên người dùng là wordpressuser cho đơn giản, nhưng bạn có thể sử dụng tên khác và nhớ là thay mật khẩu đủ mạnh và bảo mật.

GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password'; 

Note: Nhớ rằng quy định mật khẩu là yêu cầu 12 ký tự , ít nhất một chữ in hoa , một chữ in thường, một số và một ký tự đặc biệt. Nếu không thì câu lệnh trên sẽ không tạo ra được người dùng và thông báo lỗi.

Xóa quyền truy cập để xác minh sự thay đổi của server MySQL .

FLUSH PRIVILEGES; 

Giờ thì thoát MySQL.

EXIT; 

Wordpress có một hệ cơ sở dữ liệu và tài khoản người dùng chuyên dụng nên tất cả các thành phần cảu hệ thống đều được cài đặt. Bước tiếp theo chúng ta sẽ cài Wordpress tự động.

 

Bước 3 -  Tải Wordpress 

Chúng ta sẽ cài phiên bản Wordpress mới nhất vào trong địa chỉ gốc của web  và phải đảm bảo rằng web server cũng có khả năng truy cập được, sau đó kết thúc cài đặt thông qua giao diện đồ họa Wordpress . Trong bước này chúng ta sẽ chỉ download thôi vì chúng ta còn phải định cấu hình cho web server trước khi truy cập GUI.

 Đầu tiên đổi địa chỉ hiện tại thành  /var/www,  Web nguồn sẽ lưu file web của bạn.

cd /var/www 

Tải phiên bản Wordpress mới nhất ở dạng file nén, ta cần tải phiên bản mới nhất vì phần mềm được update một cách rất thường xuyên với hệ thống bảo vệ tốt.

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

Giải nén file vừa tải.

sudo tar zxf latest.tar.gz 

 Nó sẽ tự động tạo một địa chỉ mới là  wordpress.  Giờ thì bạn có thể gỡ file nén vừa tải vì ta không cần dùng đến nó nữa.

sudo rm latest.tar.gz 

Bước cuối cùng là thay đổi giấy phép hoạt động của file Wordpress và địa chỉ của nó để Caddy có khả năng ghi được tất cả các file.

sudo chown -R caddy:caddy wordpress 

Note: Lựa chọn giấy phép chuẩn cho Wordpress là tùy thuộc vào từng người . Việc không cho phép truy cập file Wordpress có thể tăng tính bảo mật cũng như làm cho nó không thể lợi dụng những lỗi sơ hở để làm hại file lõi Wordpress nhưng đồng thời nó sẽ dẫn đến hậu quả là sẽ bị vô hiệu hóa khả năng cập nhật chương trình bảo vệ tự động, tuy nhiên ta có thể cài đặt và update thông qua giao diện web Wordpress .

Tiếp theo ta sẽ điều chỉnh cấu hình Web server để phục vụ cho trang web của bạn.

 

Bước 4 -  Định cấu hình Caddy để phục vụ cho Website Wordpress 

Giờ chúng ta sẽ điều chỉnh cấu hình file Caddyfile  để thông báo cho Caddy vị trí cài đặt của Wordpress và người truy cập có thể thấy dưới tên miền đó.

Mở cấu hình file với vi  hoặc bất kỳ công cụ chỉnh sửa nào mà bạn thích.

sudo vi /etc/caddy/Caddyfile 

Copy và Paste cấu hình đó vào trong file, bạn có thể bỏ đi cấu hình minh họa phần trước.

/etc/caddy/Caddyfile
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}}}

 Caddyfile  có cấu trúc như sau:

  •  example.com  Là tên miền , bạn có thể đổi tên miền cho riêng bạn.
  •  admin@example.com sau địa chỉ tls  thông báo cho Caddy địa chỉ email sử dụng để yêu cầu  giấy chứng nhận Let's Encrypt. Nếu cần khôi phục giấy chứng nhận thì Let's Encrypt sẽ sử dụng địa chỉ email này trong quá trình khôi phục.
  •  root  là địa chỉ thông báo cho Caddy vị trí của file website . Trong ví dụ này thì địa chỉ của nó là  /var/www/wordpress.
  •  gzip  là địa chỉ báo cho Caddy sử dụng công cụ nén Gzip để website chạy nhanh hơn.
  •  fastcgilà địa chỉ giúp định cấu hình PHP để cung cấp file  php  mở rộng.
  •  rewrite là địa chỉ được sử dụng để hữu hiệu hóa  URLs (link vĩnh viễn trong WordPress).Cấu hình này sẽ được cung cấp tự động  bởi Wordpress ở file  .htaccess nếu bạn sử dụng Apache , nhưng nếu dùng Caddy thì cần định cấu hình riêng.

Sau khi thay đổi cấu hình file thì lưu và thoát.

Khởi động lại Caddy để kích hoạt file cấu hình mới.

sudo systemctl restart caddy 

Khi Caddy khởi động thì nó sẽ tự động lấy chứng nhận SSL từ Let's Encrypt sử dụng mã hóa TLS để bảo mật hơn cho web của bạn. Giờ bạn có thể truy cập Caddy - website Wordpress chủ bằng việc điều hướng tới miền đó sử dụng trình duyệt. Khi truy cập bạn sẽ để ý thấy  khóa xanh xuất hiện trên thanh địa chỉ thông báo bạn đang được kết nối an toàn.

Giờ thì bạn đã cài đặt và định cấu hình cho Caddy và các phần mềm liên quan để quản lý Wordpress của bạn. Bước cuối cùng là hoàn thành cấu hình Wordpress sử dụng giao diện đồ họa.

 

Bước 5 - Định cấu hình Wordpress 

Để hoàn thành quá trình cài đặt Wordpres ta sử dụng công cụ giải nén cài đặt GUI, có chức năng kết nối tới hệ cơ sở dữ liệu và Website ban đầu của bạn.

Khi lần đầu truy cập Wordpress trên trình duyệt của bạn thì bạn sẽ thấy một danh sách ngôn ngữ, lựa chọn ngôn ngữ bạn muốn. Giao diện tiếp theo mô tả những thông tin cần về hệ cơ sở dữ liệu của bạn. Click Let's go!, trang tiếp theo sẽ yêu cầu nội dung kết nối cơ sở dữ liệu. Điền những thông tin dưới đây.

  • Database Name là wordpress nếu làm y hệt bước 2.
  • Username là wordpressuser nếu làm y hệt bước 2.
  • Password là mật khẩu bạn cài cho wordpressuser ở bước 2.
  • Database Host và Table Prefix thì điền giá trị mặc định.

Khi click Submit, WordPress sẽ kiểm tra thông tin bạn cung cấp có đúng không , nếu có lỗi thì cần kiểm tra thông tin bạn nhập vào có chính xác không.

Khi Wordpress kết nối thành công tới hệ cơ sở dữ liệu bạn sẽ thấy tin nhắn xuất hiện với dòng chữ:  Được rồi, tuyệt vời ! bạn đã cài đặt thành công được một phần rồi. Giờ thì Wordpress có thể kết nối được với hệ cơ sở dữ liệu của bạn .

Giờ thì click Run the install  để bắt đầu cài đặt. Sau một lúc, Wordpress sẽ hỏi bạn vài thông tin về website của bạn như là tên website , tên tài khoản người dùng, mật khẩu , địa chỉ email. Nó sẽ tạo cho bạn một mật khẩu đủ mạnh nhưng bạn có thể thay đổi nếu thích.

Note: Để có được một hệ thống bảo mật tốt thì không nên sử dụng tên người dùng phổ biến như là admin cho tài khoản quản trị vì hệ thống bảo mật khai thác dựa trên tên người dùng và mật khẩu chuẩn.Vậy nên cần sử dụng một tên tài khoản độc đáo cũng như mật khẩu đủ mạnh để tài khoản có thể bảo vệ website của bạn.

Sau khi click Install WordPress, bạn sẽ được điều hướng tới giao diện Wordpress , giờ thì bạn đã cài đặt xong ,bạn có thể sử dụng Wordpress miễn phí để viết bài cũng như thao tác trên website của bạn.

 Kết luận

Giờ thì bạn đã có một phần mềm Wordpress sử dụng Caddy web server . Caddy sẽ tự động lấy chứng nhận SSL từ Let's Encrypt để phục vụ cho website của bạn thông qua kết nối bảo mật và sử dụng công cụ nén HTTP/2 và Gzip để làm cho website của bạn nhanh hơn.

Nếu bạn muốn sử dụng plugin với ứng dụng Wordpress mới thì nên nhớ rằng nó còn phụ thuộc vào file .htaccess của Apache web server . Sở dĩ Apache không phổ biến cho Wordpress nên các file  .htaccess mà plugin phụ thuộc không tồn tại nhiều. Tuy nhiên số ít plugin đấy lại không hoạt động với Caddy vì Caddy không có file .htaccess. Đây là một điểm tốt để báo hiệu rằng ta đang truy cập Wordpress plugin sử dụng Caddy.

Hầu hết các plugin phụ thuộc vào file đính kèm .htaccess . như ví dụ ta cung cấp bên trên , bên cạnh đó Wordfence - một module firewall ứng dụng web cũng sử dụng file  .htaccess mặc định nhưng nó lại hỗ trợ dạng cấu hình khác nhau.