Cách cài đặt WordPress với Nginx và Let's Encrypt SSL trên CentOS 8

theanh

Administrator
Nhân viên
WordPress là một hệ thống quản lý nội dung miễn phí, mã nguồn mở và được sử dụng rộng rãi nhất trên thế giới. Đây là một nền tảng blog rất mạnh mẽ có thể được sử dụng để lưu trữ Blog, Trang web danh mục đầu tư và nền tảng thương mại điện tử. WordPress sử dụng máy chủ web Apache/Nginxas, MariaDB/MySQL làm cơ sở dữ liệu và xử lý PHP. WordPress cung cấp một số lượng lớn các chủ đề và plugin có thể được sử dụng để tùy chỉnh chức năng của nó.

Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt WordPress với Nginx trên máy chủ CentOS 8 và sau đó chúng tôi bảo mật máy chủ bằng cách sử dụng chứng chỉ SSL Let's Encrypt miễn phí.

Điều kiện tiên quyết​

  • Một máy chủ chạy CentOS 8.
  • Một mật khẩu gốc được cấu hình trên máy chủ của bạn.
  • Một tên miền hợp lệ được trỏ đến địa chỉ IP máy chủ của bạn.

Bắt đầu​

Theo mặc định, SELinux được bật trong máy chủ CentOS 8. Vì vậy, trước tiên bạn cần phải vô hiệu hóa nó.

Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp /etc/selinux/config:
Mã:
nano /etc/selinux/config
Thực hiện các thay đổi sau:
Mã:
SELINUX=disabled
Lưu và đóng tệp. Sau đó, khởi động lại máy chủ của bạn để áp dụng các thay đổi.

Cài đặt LEMP Server​

Trước khi bắt đầu, bạn sẽ cần cài đặt Nginx, MariaDB, PHP và các gói cần thiết khác trên máy chủ của mình. Bạn có thể cài đặt tất cả chúng bằng cách chạy lệnh sau:
Mã:
yum install nginx php php-cli php-curl php-zip php-mbstring php-mysqlnd php-fpm curl unzip mariadb-server -y
Sau khi tất cả các gói được cài đặt, hãy khởi động dịch vụ Nginx, PHP-FPM, MariaDB và cho phép chúng khởi động sau khi khởi động lại hệ thống:
Mã:
systemctl start nginx
 systemctl enable nginx
 systemctl start mariadb
 systemctl start php-fpm
 systemctl enable php-fpm
Bạn cũng có thể kiểm tra trạng thái của dịch vụ PHP-FPM bằng lệnh sau:
Mã:
systemctl status php-fpm
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? php-fpm.service - Trình quản lý quy trình PHP FastCGI Đã tải: đã tải (/usr/lib/systemd/system/php-fpm.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thu 2019-10-17 05:39:11 EDT; 4 phút 40 giây trước PID chính: 1475 (php-fpm) Trạng thái: "Quy trình đang hoạt động: 0, nhàn rỗi: 5, Yêu cầu: 0, chậm: 0, Lưu lượng: 0req/giây" Nhiệm vụ: 6 (giới hạn: 5060) Bộ nhớ: 28,5M CGroup: /system.slice/php-fpm.service ??1475 php-fpm: quy trình chính (/etc/php-fpm.conf) ??1478 php-fpm: nhóm www ??1479 php-fpm: nhóm www ??1480 php-fpm: nhóm www ??1481 php-fpm: nhóm www ??1482 php-fpm: nhóm www17 tháng 10 05:39:10 centos8 systemd[1]: Đang khởi động Trình quản lý quy trình PHP FastCGI...17 tháng 10 05:39:11 centos8 systemd[1]: Đã khởi động Quy trình PHP FastCGI Quản lý.
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình Cơ sở dữ liệu WordPress​

Theo mặc định, máy chủ MariaDB không được bảo mật. Vì vậy, trước tiên bạn cần bảo mật máy chủ này. Bạn có thể bảo mật máy chủ này bằng lệnh sau:
Mã:
mysql_secure_installation
Trả lời tất cả các câu hỏi như hiển thị bên dưới:
Mã:
Nhập mật khẩu hiện tại cho root (nhập nếu không có):Đặt mật khẩu root? [C/N] nXóa người dùng ẩn danh? [C/N] YKhông cho phép root đăng nhập từ xa? [C/N] YXóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [C/N] YTải lại bảng đặc quyền ngay bây giờ? [C/N] Y
Sau khi bảo mật, bạn sẽ nhận được kết quả sau:
Mã:
Đang dọn dẹp...Xong! Nếu bạn đã hoàn tất tất cả các bước trên, thì cài đặt MariaDB của bạnbây giờ đã được bảo mật.Cảm ơn bạn đã sử dụng MariaDB!
Tiếp theo, đăng nhập vào shell MariaDB bằng lệnh sau:
Mã:
mysql -u root -p
Cung cấp mật khẩu root của bạn khi được nhắc, sau đó tạo cơ sở dữ liệu và người dùng cho WordPress bằng các lệnh sau:
Mã:
MariaDB [(none)]> CREATE DATABASE wpdb;
 MariaDB [(none)]> GRANT ALL PRIVILEGES on wpdb.* to 'wpuser'@'localhost' defined by 'password';
Tiếp theo, flush các đặc quyền và thoát khỏi shell MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
 MariaDB [(none)]> EXIT;
Sau khi cấu hình xong cơ sở dữ liệu, bạn có thể tiến hành bước tiếp theo.

Tải xuống WordPress​

Bạn có thể tải xuống phiên bản WordPress mới nhất bằng lệnh sau:
Mã:
cd /var/www/html
 wget https://wordpress.org/latest.tar.gz
Sau khi tải xuống, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Mã:
tar -xvzf latest.tar.gz
Tiếp theo, hãy thay đổi quyền sở hữu thư mục wordpress thành nginx:
Mã:
chown -R nginx: /var/www/html/wordpress/
Tiếp theo, hãy thay đổi thư mục thành wordpress và đổi tên tệp cấu hình mặc định của wordpress:
Mã:
cd /var/www/html/wordpress
 cp wp-config-sample.php wp-config.php
Tiếp theo, hãy chỉnh sửa tệp wp-config.php trong trình soạn thảo văn bản yêu thích của bạn:
Mã:
nano wp-config.php
Xác định thông tin cơ sở dữ liệu của bạn như được hiển thị bên dưới:
Mã:
/** Tên cơ sở dữ liệu cho WordPress */define( 'DB_NAME', 'wpdb' );/** Tên người dùng cơ sở dữ liệu MySQL */define( 'DB_USER', 'wpuser' );/** Mật khẩu cơ sở dữ liệu MySQL */define( 'DB_PASSWORD', 'password' );/** MySQL hostname */define( 'DB_HOST', 'localhost' );
Lưu và đóng tệp khi bạn hoàn tất.

Cấu hình Nginx cho WordPress​

Tiếp theo, bạn sẽ cần tạo tệp cấu hình máy chủ ảo Nginx để phục vụ WordPress. bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/wordpress.conf
Thêm các dòng sau:
Mã:
server { listen 80; server_name example.com; root /var/www/html/wordpress; index index.php; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found tắt; access_log tắt; } location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { hết hạn tối đa; log_not_found tắt; }}
Lưu và đóng tệp. Sau đó, kiểm tra nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Mã:
nginx -t
Bạn sẽ nhận được kết quả sau:
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Cuối cùng, khởi động lại dịch vụ Nginx để áp dụng các thay đổi cấu hình:
Mã:
systemctl restart nginx

Truy cập Bảng điều khiển WordPress​

WordPress đã được cài đặt và cấu hình, bây giờ là lúc truy cập giao diện web.

Mở trình duyệt web của bạn và nhập URL . Bạn sẽ được chuyển hướng đến trang sau:



Cung cấp tất cả thông tin bắt buộc như tên trang web, tên người dùng quản trị, mật khẩu, email quản trị và nhấp vào nút Cài đặt WordPress. Sau khi quá trình cài đặt hoàn tất. Bạn sẽ thấy trang sau:



Nhấp vào nút đăng nhập. Bạn sẽ được chuyển hướng đến trang đăng nhập WordPress:



Cung cấp tên người dùng, mật khẩu quản trị viên và nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển WordPress trong trang sau:


Bảo mật WordPress bằng Let's Encrypt​

Để bảo mật trang WordPress của bạn bằng Let's Encrypt SSL miễn phí, bạn sẽ cần cài đặt ứng dụng khách Certbot Let's Encrypt trong hệ thống của mình. Theo mặc định, Certbot không khả dụng trong kho lưu trữ mặc định của CentOS 8. Vì vậy, bạn sẽ cần tải xuống từ trang web chính thức của Certbot.

Bạn có thể tải xuống và cài đặt Certbot bằng các lệnh sau:
Mã:
wget https://dl.eff.org/certbot-auto
 mv certbot-auto /usr/local/bin/certbot-auto
 chown root /usr/local/bin/certbot-auto
 chmod 0755 /usr/local/bin/certbot-auto
Bây giờ, hãy chạy lệnh sau để lấy và cài đặt chứng chỉ SSL cho trang web WordPress của bạn.
Mã:
certbot-auto --apache -d example.com
Bạn sẽ được yêu cầu cung cấp địa chỉ email và đồng ý với các điều khoản dịch vụ. Bạn cũng sẽ cần chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không. Vui lòng chọn tùy chọn phù hợp và nhấn Enter. Sau khi quá trình cài đặt hoàn tất thành công, bạn sẽ nhận được kết quả sau:
Mã:
LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 14/08/2019. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* các chứng chỉ của bạn, hãy chạy "certbot renew" - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le

Thiết lập gia hạn tự động Let's Encrypt​

Chứng chỉ Let's Encrypt có hiệu lực trong 90 ngày. Vì vậy, bạn nên gia hạn chứng chỉ trước khi hết hạn. Bạn có thể thiết lập tác vụ Cron để tự động gia hạn chứng chỉ.

Để thực hiện, hãy tạo crontab bằng lệnh sau:
Mã:
crontab -e
Thêm dòng sau:
Mã:
0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew
Lưu và đóng tệp khi bạn hoàn tất.

Kết luận​

Trong hướng dẫn trên, chúng ta đã tìm hiểu cách cài đặt và cấu hình WordPress với Nginx trên máy chủ CentOS. Chúng ta cũng đã tìm hiểu cách bảo mật trang web WordPress bằng Let's Encrypt SSL miễn phí. Tôi hy vọng bây giờ bạn có thể dễ dàng lưu trữ trang web WordPress của riêng mình.
 
Back
Bên trên