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 và 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!