access_time
hourglass_empty
person_outline

Cách cài đặt WordPress trên Ubuntu bằng Nginx

Nginx là phần mềm web server mã nguồn mở được phát hành từ 2004 và hoàn toàn được viết bởi C . Nó có nhiều ưu điểm ngay sao đây! Trong bài hướng dẫn này, chúng tôi sẽ chỉ bạn cách cài đặt WordPress trên Ubuntu chạy Nginx server!

Vì sao sử dụng WordPress Nginx

Nginx đang tăng độ phổ biến lên từng ngày trong thời gian vừa qua và được xem như sự thay thế hoàn hảo cho Apache web server. Nginx hỗ trợ reverse proxy, caching, media streaming, load balancing và nhiều tính năng khác. Nó rất phù hợp cho những website WordPress chạy trên VPS.

Một số tính năng có sẵn của Nginx là:

  • Nginx được tạo để sử dụng ram thấp
  • Nó có thể hỗ trợ xử lý đồng thời nhiều request
  • Hỗ trợ Ipv6
  • Hỗ trợ reverse proxy với caching hiệu quả
  • Cung cấp load balancer dựng sẵn
  • Hỗ trợ WebSockets
  • Tối ưu xử lý file index, file tĩnh và tự động index
  • Kết hợp với FastCGI để caching tốt hơn

Nginx làm được nhiều việc hơn một web server thông thường, đó là lý do vì sao nó phổ biến đến vậy. Nginx vượt trội hơn các web server cũ và giữ vững điểm benchmark cao hơn về hiệu năng.

Nginx giải quyết được bài toán mở rộng và là giải pháp của vấn đề C10k liên quan đến xử lý yêu cầu cùng lúc.

Và nếu như bạn chưa biết, WordPress và Nginx như một cặp bài trùng vậy đó, nó hoạt động mượt mà bên nhau!

Giờ, chúng tôi sẽ chỉ bạn cách cài đặt WordPress trên Ubuntu dùng Nginx .

Giống với LAMP, sử dụng Nginx sẽ được gọi là LEMP có nghĩa là cài Linux, Nginx, MySQL/MariaDB, và PHP.

Chuẩn bị

  1. Đăng nhập vào server với quyền sudo
  2. Nginx cài sẵn
  3. Đã có chứng chỉ SSL cài lên tên miền của bạn
  4. Bạn đã sở hữu một tên miền trỏ tới địa chỉ IP của server.

Làm thế nào để cài đặt WordPress trên Ubuntu chạy Nginx

Hãy xem qua toàn bộ quá trình cài đặt WordPress trên Ubuntu chạy Nginx:

1. Cập nhật máy tính

Cập nhật danh sách package bằng lệnh:

sudo apt update

Cập nhật tới phiên bản mới nhất bằng lệnh:

sudo apt upgrade

2. Cài đặt Nginx

Nginx packages có sẵn trong bộ repository của Ubuntu. Bạn có thể dùng lệnh sau để cài nó:

sudo apt install nginx

Sau khi hoàn tất cài đặt (mật một lúc), Ngix service sẽ tự khởi chạy. Để kiểm tra lại tình trạng chạy của Nginx, bạn gõ lệnh sau:

sudo systemctl status nginx

3. (Tùy chọn) Cấu hình UFW

Nếu bạn đang dùng UFW (Uncomplicated Firewall) để quản lý VPS firewall vậy bạn cần mở port 80 và 443 để cho HTTP và HTTPS chạy. Bạn có thể kích hoạt profile NGinx riêng đã chứa cả 2 port này bằng lệnh sau:

sudo ufw allow 'Nginx Full'

Để xác nhận tình trang, sử dụng lệnh:

sudo ufw status

4. Cài đặt và cấu hình MySQL Database

Để lưu data, chúng ta sẽ dùng MySQL. Trong trường hợp bạn chưa cài MySQL, bạn có thể cài bằng cách dùng lệnh:

sudo apt install mysql-server

Cài đặt xong, MySQL database sẽ tự khởi chạy. Bạn dùng lệnh sau để kiểm tra lại:

sudo systemctl status mysql

Tiếp theo, đăng nhập vào MySQL shell bằng lệnh:

mysql -u root -p

Nó sẽ chuyển sang MySQL console. Tại đây bạn tạo database và database user với tên là WordPress và WordPressUser lần lượt bằng lệnh:

mysql> CREATE DATABASE WordPress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
mysql> GRANT ALL ON WordPress.* TO WordPressUser @'localhost' IDENTIFIED BY 'your password';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Nó sẽ tạo cơ bản database cho bạn để dùng cho việc cài WordPress.

5. Cài đặt PHP

Bạn cài PHP extensions trực tiếp bằng một lệnh sau:

sudo apt install php7.2-cli php7.2-fpm php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

Sau khi hoàn tất, PHP-FPM sẽ tự khởi chạy Fast CGI process manager sẽ kích hoạt caching.

6. Cài đặt WordPress với Nginx

Để cài đặt WordPress với Nginx, đầu tiên tạo thư mục để tải WordPress về:

sudo mkdir -p /var/www/html/sample.com

Từ website chính thức của WordPress, bạn có thể tải bản mới nhất về thư mục /tmp. Di chuyển tới thư mục này bằng lệnh cd và tải về bằng lệnh wget:

cd /tmp
wget https://wordpress.org/latest.tar.gz

Tiếp theo, bạn có thể giải nén file cài này tới thư mục được tạo trước đây bằng lệnh:

tar xf latest.tar.gz
sudo mv /tmp/wordpress/* /var/www/html/sample.com/

Web server sẽ đòi quyền truy cập file. Thay đổi permission của nó bằng lệnh:

sudo chown -R www-data: /var/www/html/sample.com

Lưu ý là Nginx và PHP chạy www-data user và group, vì vậy ta dùng lệnh trên

7. Cấu hình WordPress Nginx

Để cấ hình Nginx cho WordPress, chúng ta cần tạo server block cho WordPress. Chuyển tới thư mục /etc/nginx/sites-available. Tại đây, tạo file có tên sample.com. Tên nên trùng với admin.

Thêm code này vào file mới tạo:

# Redirect HTTP -> HTTPS
server {
listen 80;
server_name www.sample.com sample.com;

include snippets/letsencrypt.conf;
return 301 https://sample.com$request_uri;
}

# Redirect WWW -> NON-WWW
server {
listen 443 ssl http2;
server_name www.sample.com;

ssl_certificate /etc/letsencrypt/live/sample.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sample.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/sample.com/chain.pem;
include snippets/ssl.conf;

return 301 https://sample.com$request_uri;
}

server {
listen 443 ssl http2;
server_name sample.com;

root /var/www/html/sample.com;
index index.php;

# SSL parameters
ssl_certificate /etc/letsencrypt/live/sample.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sample.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/sample.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;

# log files
access_log /var/log/nginx/sample.com.access.log;
error_log /var/log/nginx/sample.com.error.log;

location = /favicon.ico {
log_not_found off;
access_log off;
}

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

location / {
try_files $uri $uri/ /index.php?$args;
}

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

location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires max;
log_not_found off;
}
}

Lưu ý là dùng đúng tên miền. Để dễ quản lý hơn, bạn hãy tạo symbolic link tới thư mục sites-enabled:

sudo ln -s /etc/nginx/sites-available/sample.com /etc/nginx/sites-enabled/

Bạn xác nhận cấu hình cho Nginx bằng lệnh sau:

sudo nginx -t

Nếu không có lỗi bạn sẽ thấy tin nhắn báo syntax is ok. Và có thể bỏ qua.

Giờ khởi động lại Nginx bằng lệnh:

sudo systemctl restart nginx

Vào lúc này bạn đã có PHP, MySQL và Nginx cấu hình xong và sẵn sàng để chạy. Bước tiếp theo là cài đặt WordPress lên.

8. Khởi chạy WordPress Nginx

Gần xong rồi, bước cuối chỉ là cài đặt WordPress thôi!

Mở trình duyệt bằng tên miền như là http://sample.com. Thay bằng tên của bạn!

Bạn sẽ thấy cửa sổ chọn ngôn ngữ. Chọn ngôn ngữ bạn thích.

Bạn sẽ thấy hướng dẫn cài đặt và cứ tiến hành làm theo để tới trang tiếp theo.

Ở trang cấu hình database, cung cấp tên database bạn tạo ở bước trên, username và password của nó. Trong trường hợp của chúng ta, nó sẽ là WordPressUser cho username và WordPress cho database.

Hoàn tất cài đặt bằng cách nhất nút Install

Ngoài ra bạn có thể thêm một số thông tin cho WordPress, như username cho WordPress.

Vì lý do bảo mật, hãy dùng tên username khác admin. Nhấn nút Install WordPress. Nó sẽ chuyển bạn về trang đăng nhập nơi bạn có thể nhập thông tin WordPress username và password vào.

Đăng nhập xong bạn sẽ thấy WordPress dashboard.

Tới lúc này bạn đã có thể thiết lập WordPress, như cài theme mới, thêm plugin, vâng vâng.

Lời kết

Qua bài hướng dẫn này, bạn đã biết cách cài đặt WordPress trên Ubuntu 18.04 sử dụng Nginx. Chúc mừng nhé, bạn không những đang dùng CMS phổ biến nhất hành tinh mà còn dùng WordPress Nginx sẵn sàng cho hàng ngàn truy cập. Hãy tiếp tục và khai phá sức mạnh của WordPress và trải nghiệm sức mạnh vượt trội của hệ thống máy chủ riêng ảo!

Tác giả

Author

Hai G. / @hghaigiang

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.

Bài hướng dẫn liên quan

Trả lời

Bình luận*

Tên*

Email*

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

Gia nhập Hostinger ngay hôm nay!