HƯỚNG DẪN CÀI ĐẶT VPS CHI TIẾT ĐỂ CHẠY WEBSITE WORDPRESS

Cập nhật: 17/05/2022 02:36 - Lượt xem: 83

Trong bài hướng dẫn sử dụng VPS lần này WEBPLUS sẽ hướng dẫn mọi người cách làm thế nào để cấu hình VPS qua các bước đơn giản. Trước khi đi vào phần chi tiết kỹ thuật, chúng tôi sẽ giải thích cho bạn vì sao bạn cần cài đặt và cấu hình máy chủ ảo mới của bạn

I. VPS là gì? Vì sao cần phải thiết lập khi mua VPS?

VPS là viết tắt của Virtual Private Server (máy chủ riêng ảo) được tạo ra bằng cách phân chia 1 máy chủ vật lý thành nhiều máy chủ khác nhau có tính năng giống như một máy chủ riêng biệt. Mặc dù vẫn sử dụng chia sẻ tài nguyên từ máy chủ ban đầu.

1. Vì sao cần phải thiết lập khi mua VPS?

Chúng ta đã biết khi đăng ký một gói hosting cơ bản bạn sẽ được cung cấp tài khoản vào control panel. Tuy nhiên trong một vài trường hợp, bạn cần thao tác điều chỉnh trên thông số của Server, điều này không thể thực hiện được với gói hosting thông thường qua Control Panel.

Đó là lý do vì sao bạn cần phải thiết lập CPS để có thể tùy biến và sử dụng theo mục đích công việc riêng của bản thân.

II. Ubuntu là gì?

Ubuntu là hệ điều hành mở do người dùng phát triển dựa trên Debian GNU/Linux bao gồm nhiều bản phân phối khác nhau.

Ubuntu có rất nhiều tính năng hữu ích cho các máy tính xách tay, desktop và cả máy chủ. Đồng thời, hệ điều hành Ubuntu cũng được cung cấp miễn phí. Do đó, bạn sẽ không phải trả bất kỳ phí bản quyền nào khi sử dụng nó.

III. Hướng dẫn setup 1 VPS hoàn chỉnh

1. Hướng dẫn mua VPS và tên miền

Bước 1: Mua VPS

Bước 2: Trỏ tên miền về VPS

Trước tiên, bạn cần truy cập vào quản trị tên miền. Ở trang cấu hình domain, bạn gán đầy đủ 3 Record như hình… @, *, www. Chờ dịch vụ DNS tự động thực hiện việc trỏ tên miền là bạn có thể truy cập vào host của bạn thông qua tên miền.

Trỏ tên miền về VPSTrỏ IP cho tên miền

2. Thiết lập tưởng lửa với UFW trên Ubuntu

UFW hoặc tường lửa không phức tạp, là một giao diện quản lý tường lửa được đơn giản hóa để che dấu sự phức tạp của các công nghệ lọc gói cấp thấp hơn. Nếu bạn đang muốn bắt đầu bảo mật mạng của mình và không chắc chắn nên sử dụng công cụ nào thì UFW có thể là lựa chọn phù hợp cho bạn.

Kiểm tra hệ điều hành đang dùng là centos hay ubuntu

cat /etc/os-release

Kiểm tra trạng thái xem UFW đã được cài đặt hay chưa

sudo ufw status

UFW được cài đặt theo mặc định trên Ubuntu. Nếu nó đã bị gỡ cài đặt vì lý do nào đó, bạn có thể cài đặt nó với

sudo apt install ufw

Bước 1: Sử dụng IPv6 với UFW

sudo nano /etc/default/ufw

Sau đó, hãy chắc chắn rằng giá trị của IPV6yes. Nó sẽ giống như thế này

IPV6=yes

Lưu và đóng tập tin. Bây giờ, khi UFW được kích hoạt, nó sẽ được cấu hình để viết cả quy tắc tường lửa IPV4 và IPV6. Tuy nhiên, trước khi bật UFW, chúng tôi sẽ muốn đảm bảo rằng tường lửa của bạn được định cấu hình để cho phép bạn kết nối qua SSH.

Bước 2: Thiết lập chính sách mặc định

Nếu chỉ mới bắt đầu với tường lửa, các quy tắc đầu tiên cần xác định là các chính sách mặc định của bạn. Các quy tắc này kiểm soát cách xử lý lưu lượng truy cập không khớp với bất kỳ quy tắc nào khác. Theo mặc định, UFW được đặt để từ chối tất cả các kết nối đến và cho phép tất cả các kết nối đi. Điều này có nghĩa là bất kỳ ai cố gắng truy cập vào máy chủ của bạn sẽ không thể kết nối, trong khi bất kỳ ứng dụng nào trong máy chủ sẽ cố thể tiếp cận với bên ngoài.

Hãy đặt các quy tắc UFW của bạn trở lại mặc định. Để đặt các giá trị mặc định được sử dụng bởi UFW, bạn sử dụng các lệnh sau:

sudo ufw default deny incoming
sudo ufw dèault allow outgoing

Các lệnh này đặt giá trị mặc định để từ chối kết nối đến và cho phép các kết nối gửi đi. Chỉ riêng các mặc định tường lửa này đã có thể đủ cho một máy tính các nhân, nhưng các máy chủ thường cần phản hồi các yêu cầu đến từ người dùng bên ngoài.

Bước 3: Cho phép kết nối SSH

Nếu bật tường lửa UFW bây giờ, nó sẽ từ chối tất cả các kết nối đến. Điều này nghĩa là chúng ta cần tạo các quy tắc cho phép rõ ràng các kết nối đến.

Để định cấu hình máy chủ của bạn để cho phép các kết nối SSH đến, bạn có thể sử dụng lệnh sau:

sudo ufw allow ssh

Điều này sẽ tạo ra các quy tắc tường lửu cho phép tất cả các kết nối trên cổng 22, đó là cổng mà SSH mặc định. Tuy nhiên, chúng ta có thể viết quy tắc tương đương bằng cách chỉ định cổng thay vì tên dịch vụ:

sudo ufw allow 22

Nếu bạn đã cấu hình SSH của mình để sử dụng một cổng khác, bạn sẽ phải chỉ định cổng thích hợp. Ví vụ: nếu máy chủ SSH của bạn đang trên cổng 2222, bạn có thể sử dụng lệnh này để cho phép các kết nối trên cổng đó:

sudo ufw allow 2222

Bây giờ tường lửa của bạn đã được cấu hình để cho phép các kết nối SSH đến, sau đây chúng ta có thể kích hoạt nó.

Bước 4: Bật UFW

Để bật UFW, bạn sử dụng lệnh sau:

sudo ufw enable

Bạn sẽ nhận được một cảnh báo cho biết lệnh có thể làm gián đoạn các kết nối SSH đang có. Chúng ta đã thiết lập cấu hình tường lửa cho phép kết nối SSH, vậy nên bạn có thể tiếp tục bằng y và nhấn ENTER.

Tường lửa hiện đang hoạt động. Chạy lệnh sau để xem các cấu hình được thiết lập.

sudo ufw status verbose

Chạy xong sẽ hiển thị như sau:

Hiển thị cấu hình UFW được thiết lập
Các cấu hình UFW được thiết lập

Bước 5: Cho phép các kết nối khác

Tại thời điểm này, bạn nên cho phép tất cả các kết nối khác mà máy chủ của bạn cần phản hồi. Các kết nối mà bạn bên cho phép tùy thuộc vào nhu cầu cụ thể của bạn.

HTTP trên cổng 80, là cổng mà máy chủ web không được mã hóa sử dụng, sử dụng sudo ufw allow http hoặc sudo ufw allow 80

HTTPS trên cổng 443, là cổng mà máy chủ web được mã hóa sử dụng, sử dụng sudo ufw allow https hoặc sudo ufw allow 443

Có một số cách khác để cho phép các kết nối khác, ngoài việc chỉ định một cổng hoặc dịch vụ đã biết.

Bước 6: Từ chối kết nối

Nếu chưa thay đổi chính sách mặc định cho các kết nối đến, UFW được định cấu hình để từ chối tất cả các kết nối đến. Nói chung, điều này đơn giản hóa quá trình tạo chính sách tường lửa an toàn bằng cách yêu cầu bạn cấu hình cho phép rõ ràng các cổng và địa chỉ IP cụ thể thông qua.

Tuy nhiên, nhiều khi bạn sẽ muốn từ chối các kết nối cụ thể dựa trên địa chỉ IP nguồn hoặc IP mạng con. Ngoài ra, nếu bạn muốn thay đổi chính sách đến mặc định của mình để cho phép, bạn sẽ cần tạo quy tắc từ chối cho bất kỳ dịch vụ hoặc địa chỉ IP nào mà bạn không muốn cho phép kết nối.

Ví dụ: để từ chối các kết nối HTTP, bạn có thể sử dụng lệnh này:

sudo ufw deny http

Hoặc muốn từ chối tất cả kết nối từ IP 58.84.1.148 bạn có thể sử dụng lệnh sau:

sudo ufw deny from 58.84.1.148

Bước 7: Xóa các cổng kết nối

Có 2 cách khác nhau để chỉ định quy tắc cần xóa.

Xóa theo số quy tắc cổng kết nối

Nếu bạn đang sử dụng số quy tắc để xóa các quy tắc tường lửa, điều đầu tiên bạn muốn làm là lấy danh sách các quy tắc tường lửa của mình. Lệnh trạng thái UFW có một tùy chọn để hiển thị các số bên cạnh mỗi quy tắc, như được minh họa ở đây:

Xóa các cổng kết nối theo sô quy tắc
Xóa các cổng kết nối theo số quy tắc

Xóa theo quy tắc thực tế

Thay thế cho số quy tắc là chỉ định quy tắc thực tế đã xóa. Nếu muốn xóa allow http, bạn có thể viết nó như sau:

sudo ufw delete allow http

Bước 8: Kiểm tra trạng thái và quy tắc UFW

Bất cứ lúc nào, bạn có thể kiểm tra trạng thái của UFW bằng lệnh này:

sudo ufw status verbose

Nếu UFW bị tắt, theo mặc định, bạn sẽ thấy một cái gì đó như sau:

Output
Status: inactive

Bước 9. Tắt hoặc Đặt lại UFW

Nếu bạn quyết định không muốn sử dụng UFW, bạn có thể tắt nó bằng lệnh sau:

sudo ufw disable

Nếu bạn đã định cấu hình các quy tắc UFW nhưng bạn quyết định muốn bắt đầu lại, bạn có thể sử dụng lệnh đặt lại:

sudo ufw reset

Điều này sẽ vô hiệu hóa UFW và xóa bất kỳ quy tắc nào đã được xác định trước đó. Hãy nhớ rằng các chính sách mặc định sẽ không thay đổi đối với cài đặt ban đầu của chúng, nếu bạn đã sửa đổi chúng bất kỳ lúc nào. Điều này sẽ giúp bạn có một khởi đầu mới với UFW

3. Cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên Ubuntu 20.04

là một nhóm phần mềm có thể được sử dụng để phục vụ các trang web động và ứng dụng web được viết bằng PHP. Đây là từ viết tắt mô tả hệ điều hành Linux, với máy chủ web Nginx , Dữ liệu phụ trợ được lưu trữ trong cơ sở dữ liệu MySQL và xử lý động được xử lý bởi PHP.

Setup tường lửa ban đầu

Bước 1. Cài đặt máy chủ web Nginx

Để hiển thị các trang web cho khách truy cập trang web của chúng tôi, chúng tôi sẽ sử dụng Nginx, một máy chủ web hiệu suất cao.

Vì đây là lần đầu tiên chúng tôi sử dụng apt cho phiên này, hãy bắt đầu bằng cách cập nhật chỉ mục gói của máy chủ của bạn. Sau đó, bạn có thể sử dụng apt install để cài đặt Nginx:

sudo apt update
sudo apt install nginx

Khi được nhắc, bạn hãy nhập Y để xác nhận bạn muốn cài đặt Nginx. Sau khi cài đặt xong, máy chủ web Nginx sẽ hoạt động và chạy trên máy chủ Ubuntu của bạn.

Nếu tường lửa ufw đã bật, như được khuyến nghị trong hướng dẫn thiết lập tưởng lửa, bạn sẽ cần cho phép kết nối với Nginx. Nginx đăng ký một số cấu hình ứng dụng UFW khác nhau khi cài đặt. Để kiểm tra cấu hình UFW nào khả dụng, hãy chạy:

sudo ufw app list
Output
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

Bạn nên bật cấu hình hạn chế nhất vẫn cho phép lưu lượng truy cập mà bạn cần. Vì bạn chưa định cấu hình SSL cho máy chủ của mình trong hướng dẫn này, bạn sẽ chỉ cần cho phép lưu lượng HTTP thông thường trên cổng 80.

Kích hoạt tính năng này bằng cách chạy câu lệnh:

sudo ufw allow 'Nginx HTTP'

Bạn có thể xác minh sự thay đổi bằng cách chạy câu lệnh:

sudo ufw status

Đầu ra của lệnh này sẽ cho thấy rằng lưu lượng HTTP hiện đã được phép:

Lưu lượng HTTP hiện được phép
Lưu lượng HTTP hiện đã được phép

Sau đó bạn có thể kiểm tra xem máy chủ có hoạt động hay không bằng cách truy cập vào tên miền hoặc địa chỉ IP của máy chủ trong trình duyệt web của bạn. Nếu hiển thị Welcome to Nginx! là có nghĩa bạn đã thành công

Bước 2: Cài đặt MySQL

Bạn đã có một máy chủ web đang chạy, bạn cần cài đặt hệ thống cơ sở dữ liệu để có thể lưu trữ và quản lý dữ liệu cho trang web của mình. MySQL là một hệ quản trị cơ sở dữ luệ phổ biến được sử dụng trong môi trường PHP.

Chạy câu lệnh sau để cài đặt phần mềm:

sudo apt install mysql-server

Khi được nhắc, hãy xác nhận cài đặt bằng cách nhập Y, sau đó nhấn ENTER.

Sau khi cài đặt thành công, bạn nên chạy một lệnh bảo mật được cài đặt sẵn với MySQL. Tập lệnh này sẽ xóa một số cài đặt mặc định không an toàn và khóa quyền truy cập vào hệ thống cơ sở dữ liệu của bạn.

sudo mysql_secure_installation

Điều này sẽ hỏi bạn muốn cấu hình VALIDATE PASSWORD PLUGIN. Bạn trả lời Y. Lập tức bạn sẽ được yêu cầu chọn cấp độ xác thực mật khẩu. Nếu bạn nhập 2 ở cấp độ mạnh nhất, bạn sẽ gặp lỗi khi đặt bất kỳ mật khẩu nào không chứa số, chữ hoa, chữ thường và ký tự đặc biệt. Vậy nên tôi khuyên các bạn nên nhập 1. Sau khi nhập lựa chọn bạn tiền hành đặt password.

Khi hoàn tất, bạn kiểm tra xem có thể đăng nhập vào bảng điều khiển MySQL hay không bằng câu lệnh sau:

sudo mysql

Thao tác này sẽ kết nối với máy chủ MySQL dưới dạng root người dùng CSDL quản trị.

Kết nối với máy chủ MySQL
Kết nối với máy chủ MySQL

Để thoát khỏi bảng điều khiển MySQL, hãy nhập:

exit

Bước 3: Cài đặt PHP

Bạn đã cài đặt Nginx và MySQL để lưu trữ và quản lý dữ liệu của bạn. Bây giờ bạn có thể cài đặt PHP để xử lý mã và tạo nội dung cho máy chủ web.

Để cài đặt php-fpmphp-mysql các gói, hãy chạy:

sudo apt install php-fpm php-mysql

Khi được nhắc, hãy nhập YENTER để xác nhận cài đặt.

Sau khi cài đặt xong PHP. bạn cần cấu hình Nginx để có thể sử dụng.

Bước 4: Cấu hình Nginx để sử dụng PHP

Khi sử dụng máy chủ web Nginx, chúng ta có thể tạo các khối máy chủ (tương tự như máy chủ ảo trong Apache) để cấu hình và lưu trữ nhiều hơn một tên miền trên một máy chủ duy nhất. Trong hướng dẫn này, chúng tôi sẽ sử dụng thepminhphu.vn làm tên miền mẫu.

Tạo thư mục web cho thepminhphu.vn bằng câu lệnh:

sudo mkdir /var/www/thepminhphu.vn

Tiếp theo, chỉ định quyền sở hữu thư mục với biến $ USER, biến này sẽ tham chiếu đến người dùng hệ thống hiện tại của bạn:

sudo chown -R $USER:$USER /var/www/thepminhphu.vn

Sau đó, mở tệp cấu hình mới trong sites-available thư mục của Nginx bằng trình chỉnh sửa dòng lệnh ưa thích của bạn.

sudo nano /etc/nginx/sites-available/thepminhphu.vn

Câu lệnh này sẽ tạo một tệp trống mới. Bạn dán đoạn bên dưới vào.

server {
    listen 80;
    server_name thepminhphu.vn www.thepminhphu.vn;
    root /var/www/thepminhphu.vn;

    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     }

    location ~ /\.ht {
        deny all;
    }

}

Khi bạn chỉnh sửa xong, hãy lưu và đóng tệp. Bạn có thể làm như vậy bằng cách dùng CTRL + O ENTER CTRL + X.

Kích hoạt cấu hình của bạn bằng cách liên kết đến tệp cấu hình từ sites-enabled thư mục của Nginx:

sudo ln -s /etc/nginx/sites-available/thepminhphu.vn /etc/nginx/sites-enabled/

Sau đó, hủy liên kết tệp cấu hình mặc định khỏi /sites-enabled/ thư mục:

sudo unlink /etc/nginx/sites-enabled/default

Điều này sẽ thông báo cho Nginx sử dụng cấu hình vào lần tải lại tiếp theo. Bạn có thể kiểm tra cấu hình của mình để tìm lỗi cú pháp bằng cách nhập:

sudo nginx -t

Nếu có bất kỳ lỗi nào được báo cáo, hãy quay lại tệp cấu hình của bạn để xem lại nội dung của nó trước khi tiếp tục.

Khi bạn đã sẵn sàng, hãy tải lại Nginx để áp dụng các thay đổi:

sudo systemctl reload nginx

Trang web mới của bạn hiện đang hoạt động, nhưng vẫn chưa có nội dung. Tạo tệp ở vị trí đó để kiểm tra xem máy chủ có hoạt động như mong đợi không

nano /var/www/thietkewebs.net/index.html

Bây giờ, hãy truy cập trình duyệt của bạn và truy cập vào tên miền hoặc địa chỉ IP của máy chủ để kiểm tra.

Bước 5: Kiểm tra PHP với Nginx

LEMP của bạn bây giờ sẽ được thiết lập hoàn toàn. Bạn có thể kiểm tra nó để xác nhận rằng Nginx có thể chuyển .php tệp đúng cách cho bộ xử lý PHP của bạn.

Mở một tệp mới có tên info.php trong gốc tài liệu của bạn trong trình soạn thảo văn bản của bạn:

nano /var/www/thietkewebs.net/info.php

Nhập hoặc dán các dòng sau vào tệp mới. Đây là mã PHP hợp lệ sẽ trả về thông tin về máy chủ của bạn:

phpinfo();

Khi bạn hoàn tất, hãy lưu và đóng tệp bằng cách nhập CTRL + O CTRL+ X rồi nhấn yENTER để xác nhận.

Bạn có thể truy cập trang này trong trình duyệt web để xem thông tin chi tiết về máy chủ của bạn

Trang web chứa thông tin về máy chủ phpTrang web chứa thông tin máy chủ PHP

4. Cài đặt Wordpress trên Ubuntu

Bước 1: Tạo cơ sở dữ liệu và người dùng

Để bắt đầu, hãy đăng nhập vào tài khoản gốc (quản trị) MySQL.

sudo mysql

Nếu bạn đã thay đổi phương thức xác thực để sử dụng mật khẩu cho tài khoản gốc MySQL, hãy sử dụng lệnh sau để thay thế:

mysql -u root -p

Bạn sẽ được nhắc nhập mật khẩu bạn đã đặt cho tài khoản gốc MySQL. Hãy nhập mật khẩu vào.

Sau khi đăng nhập, hãy tạo một cơ sở dữ liệu riêng mà WordPress có thể kiểm soát. Bạn có thể tạo cơ sở dữ liệu cho WordPress bằng cách nhập:

CREATE DATABASE thepminhphu DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Tiếp theo, hãy tạo một tài khoản người dùng MySQL. Tạo cơ sở dữ liệu và tài khoản cho một mục đích là một ý tưởng hay từ quan điểm quản lý và bảo mật. Chúng tôi sẽ sử dụng tên thepminhphu trong hướng dẫn này.

Trong lệnh sau, bạn sẽ tạo tài khoản, đặt mật khẩu và cấp quyền truy cập vào cơ sở dữ liệu bạn đã tạo.

CREATE USER 'thepminhphu'@'localhost' IDENTIFIED BY 'Abc123123@!';
GRANT ALL ON thepminhphu.* TO 'thepminhphu'@'localhost';

Khi các tác vụ cơ sở dữ liệu hoàn thành, hãy thoát khỏi MySQL.

Bước 2: Cài đặt các phần mở rộng PHP

Hãy tải xuống và cài đặt một số phần mở rộng PHP phổ biến nhất để sử dụng với WordPress bằng cách nhập:

sudo apt update
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

Khi bạn hoàn tất cài đặt các tiện ích mở rộng, hãy khởi động lại quy trình PHP-FPM để bộ xử lý PHP đang chạy có thể tận dụng các tính năng mới được cài đặt:

sudo systemctl restart php7.4-fpm

Bước 3: Cấu hình Nginx

sudo nano /etc/nginx/sites-available/thepminhphu.vn

File cấu hình full sẽ như thế này

sudo apt update
server {
    listen 80;
    server_name thepminhphu.vn www.thepminhphu.vn;
    root /var/www/thepminhphu.vn;

    index index.html index.htm index.php;

    location / {
       # try_files $uri $uri/ =404;
	try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     }

    location ~ /\.ht {
        deny all;
    }

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }

}

Khi bạn hoàn tất, hãy lưu và đóng tệp bằng cách. CTRL + O CTRL+ X rồi nhấn ENTER

Bây giờ, hãy kiểm tra cấu hình của chúng tôi để tìm lỗi cú pháp bằng cách nhập:

sudo nginx -t

nếu trả về thông báo như bên dưới là cấu hình đã thành công

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nếu không có lỗi nào được báo cáo, hãy tải lại Nginx bằng cách nhập:

sudo systemctl reload nginx

Bước 4: Tải xuống WordPress

Sau khi tải về, bạn dùng phần mềm FTP bất kỳ để upload lên thư mục /var/www/thepminhphu.vn. Ở đây mình dùng phần mềm WinSCP. Bạn có thể giải nén trước khi upload lên hoặc upload rồi giải nén đều được.

Upload Wordpress lên thư mục web
Upload Wordpress lên thư mục web

Bước 5: Cài đặt Wordpress

Cuối cùng bạn gõ tên miền thepminhphu.vn tiến hành cài đặt Wordpress.

facebook
zalo
hotline