Hướng dẫn cài đặt WordPress với Nginx trên Ubuntu

Công việc chính của mình là 1 Dev, nhưng đôi lúc vẫn thích tự cấu hình server, bài viết như một “note” để chính mình xem lại lúc cần để cài đặt một website WordPress hoàn chỉnh lên VPS hay Server, bởi vì nếu không thường xuyên làm việc với server như mình thì nhiều lúc sẽ quên các bước và các câu lệnh, ngoài ra mình chia sẻ lên blog này cũng với mục đích là biết đâu ai đó sẽ cần.

Login SSH vào server/VPS và bắt đầu:

Cài đặt services

Hệ điều hành sử dụng: Linux Ubuntu 20.04.5

Cài đặt các service:

Nginx

Update hệ thống và cài nginx:

sudo apt update 
sudo apt upgrade -y
sudo apt install -y nginx -y
sudo systemctl enable nginx

Câu lệnh Nginx hay sử dụng

nginx -v #kiểm tra phiên bản, check khi cài đặt thành công
sudo service nginx start   #khởi động Nginx
sudo service nginx stop    #stop dừng hoạt động Nginx
sudo service nginx status  #kiểm tra trạng thái hoạt động Nginx
sudo service nginx restart #khỏi động lại máy chủ Nginx
sudo nginx -t              #hiển thị lỗi syntax Nginx

PHP

Update hệ thống và cài PHP + các module php cần thiết cho WordPress

sudo apt update 
sudo apt upgrade -y
sudo apt install php php-cli php-fpm php-json php-imagick php-soap php-redis php-mysql php-zip php-gd  php-mbstring php-curl php-xml php-pear php-bcmath
systemctl enable php*-fpm.service    #Bật khởi động cùng hệ thống
systemctl start php*-fpm.service     #Khởi động PHP
systemctl status php*-fpm.service    #Kiểm tra PHP

MySQL

Chúng ta sẽ cài MariaDB, MariaDB được phát triển từ MySQL, do đó có thể dùng để thay thế MySQL, MariaDB nó khắc phục những hạn chế của MySQL, nhanh hơn và rất nhiều ưu điểm khác.

Cài đặt:

apt-get install mariadb-server mariadb-client -y
systemctl enable mariadb    #Bật khởi động
systemctl start mariadb     #Khởi động dịch vụ
systemctl status mariadb    #Kiểm tra dịch vụ

Cài đặt xong, cần cấu hình MariaDB

mysql_secure_installation

Gõ lệnh trên và làm theo các bước

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] y       #Thay đổi mật khẩu root mariaDB
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Tạo database cho WordPress

Log vào MySQL bằng lệnh:

mysql
mysql -u root -p #nếu cần thông tin user

Tạo một database mới bằng lệnh:

CREATE DATABASE database_name;

Tạo database thành công có thể kiểm tra bằng lệnh:

SHOW DATABASES; #xem danh sách tất cả database

Tiếp tục tạo database user bằng lệnh sau:

CREATE USER 'name_user'@localhost IDENTIFIED BY 'password';

name_user là tên user của bạn, password là mật khẩu cho user, localhost là IP của máy chủ, để mặc định là localhost nếu cùng server.

Bạn có thể kiểm tra các user đã tạo bằng lệnh:

SELECT User FROM mysql.user;

Gán quyền cho user 

GRANT ALL PRIVILEGES ON database_name.* TO name_user@localhost;

Thay database_name name_user của bạn.

Gõ lệnh sau để các thay đổi có hiệu lực:

FLUSH PRIVILEGES;

Thoát khỏi MySQL bằng phím Ctrl + C hoặc gõ lệnh EXIT;

Tạo thư mục lưu trữ và download WordPress

Tải bản mới nhất của WordPress vào thư mục var/www bằng câu lệnh dưới:

wget -P /var/www/ https://wordpress.org/latest.zip

Sau khi tải xong, bạn sẽ được file latest.zip nằm tại var/www, bạn hãy giải nén nó và để trong var/www bằng lệnh sau:

unzip "/var/www/latest.zip" -d "/var/www/"

Lưu ý, nếu hệ điều hành bạn chưa cài unzip thì cài bằng lệnh: sudo apt install unzip

Sau khi giải nén, mã nguồn WordPress sẽ nằm trong var/www/wordpress. Bạn có thể đổi thư mục wordpress thành tên domain của bạn để dễ quản lý. ví dụ mình đổi tên thư mục wordpress thành thucha.info bằng lệnh sau:

mv /var/www/wordpress /var/www/thucha.info

Cấu hình Nginx và trỏ domain

Đầu tiên bạn hãy vào phần quản trị nhà cung cấp domain của bạn, tiến hành trỏ domain về IP server/VPS của bạn. Sau khi trỏ thành công hãy thực hiện bước tiếp theo cấu hình Nginx.

Để cấu hình thêm một website mới trên Nginx, bạn điều hướng đến thư mục /etc/nginx/sites-enabled/

Tạo một file mới, có thể đặt tên file là tên website cho dễ quản lý, ví dụ: thucha

Thêm nội dung vào file vừa tạo như sau:

server {
    listen  80;
    server_name thucha.info;
    root /var/www/wp;
    index index.html index.htm index.php;

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

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

    location ~ /\.ht {
        deny all;
    }
}

Bạn hãy thay server_name là domain của bạn, root là đường dẫn đến mã nguồn WordPress mà chúng ta tải về ở bước trên, fastcgi_pass phiên bản php bạn đang sử dụng.

Gõ lệnh: nginx -t để kiểm tra, nếu hiện như hình dưới là bạn đã thành công.

Tiếp theo hãy reload Nginx bằng lệnh:

systemctl reload nginx

Tiếp theo bạn có thể cài SSL cho website bằng certbot với lệnh sau:

certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d thucha.info --email thucha.1391@gmail.com

Nhớ thay domain và email của bạn.

Cấu hình server tối ưu cho trang WordPress

Tuy thuộc vào mục đích và cấu hình phần cứng server của bạn, bạn cần tăng các cấu hình mặc định để trang WordPress của bạn không gặp lỗi khi cài đặt hay cần upload file, backup…

Cấu hình thư mục quyền đọc ghi trong thư mục:

sudo chmod -R 755 /var/www/thucha.info
sudo chown -R www-data:www-data /var/www/thucha.info

Cấu hình Nginx

Mở file /etc/nginx/nginx.conf, tìm client_max_body_size, tăng giá trị lên, ví dụ trang của mình: 48M để tránh một số lỗi khi request.

Cấu hình Php

Mở file /etc/php/8.2/fpm/php.ini, (8.2 là version php mình dùng, bạn hãy tìm trong version bạn đang sử dụng), lần lượt sửa các tham số:

upload_max_filesize = 640M
memory_limit = 640M
post_max_size = 640M

Nhập giá trị phù hợp với nhu cầu website của bạn

Cài đặt WordPress

Mở trình duyệt và truy cập vào website của bạn, màn hình Welcome setting WordPress sẽ xuất hiện:

Bấm Let’s go để bắt đầu, lần lượt nhập các thông tin Database Name, user, password mà bạn đã tạo ở bước trên

Nhập thông tin website của bạn như hướng dẫn

Cài đặt thành công bạn sẽ được 1 trang WordPress mới tinh, bạn có thể bắt đầu xây dựng một website từ đây

Tối ưu WordPress

Với Nginx + php module đã cài, bạn có thể cài đặt các plugin cache sau để tối ưu tốc độ website của bạn:

Redis Object Cache

Thêm code sau vào trong wp-config.php

define('WP_CACHE_KEY_SALT', 'yoursite');

Sau khi cài đặt plugin xong, vào Cài đặt -> Redis, bấm nút Enable Object Cache

Khi thành công xuất hiện như hình dưới là bạn đã thành công.

WP Super Cache

vào Cài đặt -> WP Super Cache, setting như hình dưới

Autoptimize

Vào Cài đặt -> Autoptimize, cài đặt như hình

Chúc bạn thành công!

5/5 - (1 bình chọn)

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận